<script>:脚本元素
该元素包括 global attributes 。
-
对于经典脚本,如果存在 属性,则经典脚本将在解析时并行获取,并在可用时立即进行评估。
对于 module scripts ,如果存在 属性,则脚本及其所有依赖项将在解析时并行获取,并在可用时立即进行评估。
警告:如果经典脚本中不存在 属性(即对于内联脚本),则不得使用此属性,在这种情况下它不会产生任何效果。
此属性可以消除阻止解析器的 JavaScript ,在这种情况下,浏览器必须先加载并评估脚本,然后才能继续解析。在这种情况下, 具有类似的效果。
如果使用 属性指定该属性,则该元素的行为将如同仅指定了 属性一样。
这是一个 boolean 属性:元素上存在 boolean 属性表示 true 值,而不存在该属性表示 false 值。
有关浏览器支持的说明,请参阅 Browser compatibility 。另请参阅 Async scripts for asm.js 。
- Experimental
-
指定您希望浏览器随脚本资源请求一起发送 标头。在服务器端,这用于触发在响应中发送 或 标头,以分别注册基于 JavaScript 的 attribution source 或 attribution trigger 。应发回哪个响应标头取决于触发注册的 标头的值。
您可以设置此属性的两个版本:
- 布尔值,即仅 名称。这指定您希望将 标头发送到与 属性指向的同一服务器。当您在同一服务器上处理归因源或触发器注册时,这很好。注册归因触发器时,此属性是可选的,如果省略,将使用空字符串值。
- 包含一个或多个 URL 的值,例如:html
<script src="myscript.js" attributionsrc="https://a.example/register-source https://b.example/register-source"></script>
注意:指定多个 URL 意味着可以在同一功能上注册多个归因来源。例如,您可能要衡量不同的广告系列的成功程度,这需要针对不同的数据生成不同的报告。
请参阅 Attribution Reporting API 了解更多详细信息。
- Experimental
-
此属性明确指示在获取脚本时应阻止某些操作。要阻止的操作必须是下面列出的以空格分隔的阻止标记列表。
- :屏幕内容的呈现被阻止。
-
对于未通过标准 CORS 检查的脚本,常规 元素会将最少的信息传递给 。要允许对使用单独域的 static 媒体的站点进行错误记录,请使用此属性。请参阅 CORS settings attributes 以获取其有效参数的更详细的说明。
-
设置此 Boolean 属性是为了向浏览器指示该脚本将在文档被解析之后但在触发 事件之前执行。
具有 属性的脚本将阻止 事件触发,直到脚本加载并完成评估。
警告:如果 属性不存在(即对于内联脚本),则不得使用此属性,在这种情况下它不会产生任何效果。
属性对 module scripts 没有影响 — — 它们默认推迟。
具有 属性的脚本将按照它们在文档中出现的顺序执行。
此属性可以消除阻止解析器的 JavaScript ,在这种情况下,浏览器必须先加载并评估脚本,然后才能继续解析。在这种情况下, 具有类似的效果。
如果该属性与 属性一起指定,则该元素将表现得好像只指定了 属性。
-
提供获取外部脚本时使用的相对优先级的提示。允许的值:
-
此属性包含内联元数据,用户代理可以使用它来验证所获取的资源是否已交付且未发生意外操作。当未指定 属性时,不得指定此属性。请参阅 Subresource Integrity 。
-
设置此 Boolean 属性是为了表明该脚本不应在支持 ES modules 的浏览器中执行——实际上,这可用于向不支持模块化 JavaScript 代码的老版本浏览器提供后备脚本。
-
允许 script-src Content-Security-Policy 中的脚本的加密随机数(一次性使用的数字)。服务器每次传输策略时都必须生成唯一的随机数值。提供不可猜测的随机数至关重要,因为否则绕过资源的策略就很容易了。
-
指示在获取脚本或脚本获取的资源时发送哪个 referrer :
- : 标头将不会被发送。
- :如果没有 TLS ( HTTPS ), 标头将不会发送到 origin 。
- :发送的引荐来源将仅限于引荐页面的来源:其 scheme 、 host 和 port 。
- :发送到其他来源的引荐来源将仅限于方案、主机和端口。同一来源上的导航仍将包含路径。
- :将为 same origin 发送引荐来源,但跨源请求将不包含引荐来源信息。
- :仅当协议安全级别保持不变(HTTPS→HTTPS)时才发送文档的来源作为引荐来源,但不要将其发送到不太安全的目的地(HTTPS→HTTP)。
- (默认):执行同源请求时发送完整的 URL,仅当协议安全级别保持不变(HTTPS→HTTPS)时发送源,并且不向不太安全的目的地发送标头(HTTPS→HTTP)。
- :引荐来源将包括来源和路径(但不包括 fragment 、 password 或 username )。此值不安全,因为它会将来源和路径从受 TLS 保护的资源泄露到不安全的来源。
注意:空字符串值 ( ) 既是默认值,也是不支持 时的后备值。如果 元素上未明确指定 ,它将采用更高级别的引荐来源策略,即针对整个文档或域设置的策略。如果没有更高级别的策略,则空字符串被视为等同于 。
-
此属性指定外部脚本的 URI;这可以用作在文档中直接嵌入脚本的替代方法。
-
此属性指示所表示的脚本的类型。此属性的值将是以下之一:
- 未设置属性(默认)、空字符串或 JavaScript MIME 类型
-
表示脚本为 "classic script" ,包含 JavaScript 代码。如果脚本引用 JavaScript 代码,则鼓励作者省略该属性,而不是指定 MIME 类型。 JavaScript MIME 类型为 listed in the IANA media types specification 。
-
此值表示元素主体包含导入映射。导入映射是一个 JSON 对象,开发者可以使用它来控制浏览器在导入 JavaScript modules 时如何解析模块说明符。
-
此值导致代码被视为 JavaScript 模块。脚本内容的处理被推迟。 和 属性不起作用。有关使用 的信息,请参阅我们的 JavaScript modules 指南。与传统脚本不同,模块脚本需要使用 CORS 协议进行跨源获取。
- Experimental
-
此值表示元素主体包含推测规则。推测规则采用 JSON 对象的形式,用于确定浏览器应预取或预渲染哪些资源。这是 Speculation Rules API 的一部分。
- 任何其他值
-
嵌入的内容将被视为数据块,浏览器不会对其进行处理。开发人员必须使用非 JavaScript MIME 类型的有效 MIME 类型来表示数据块。所有其他属性都将被忽略,包括 属性。