约 2662 字
约 13 分钟
<script>
标签HTML <script> 元素用于嵌入可执行代码或数据,这通常用作嵌入或者引用 JavaScript 代码。<script> 元素也能在其他语言中使用,比如 WebGL 的 GLSL 着色器语言和 JSON。
async
: 对于普通脚本,如果存在 async 属性,那么普通脚本会被并行请求,并尽快解析和执行。 crossorigin
: 正常的 script 元素将最小的信息传递给 window.onerror,用于那些没有通过标准 CORS 检查的脚本。要允许对静态媒体使用独立域名的网站进行错误记录,请使用此属性。参见 CORS 设置属性,以获得对其有效参数的更多描述性解释。 defer
: 这个布尔属性的设置是为了向浏览器表明,该脚本是要在文档被解析后,但在触发 DOMContentLoaded 事件之前执行的。 fetchpriority
: 提供一个指示,说明在获取外部脚本时要使用的相对优先级。允许的值:
high
: 获取该脚本的优先级比其他外部脚本的等级要高。 low
: 获取该脚本的优先级比其他外部脚本的等级要低。 auto
: 默认值:自动确定获取该脚本的相对优先级。 integrity
: 包含用户代理可用于验证所获取到资源的完整性的内联元数据。参见子资源完整性。 nomodule
: 这个布尔属性被设置来标明这个脚本不应该在支持 ES 模块的浏览器中执行。实际上,这可用于在不支持模块化 JavaScript 的旧浏览器中提供回退脚本。 nonce
: 在 script-src Content-Security-Policy 中允许脚本的一个一次性加密随机数(nonce)。服务器每次传输策略时都必须生成一个唯一的 nonce 值。提供一个无法猜测的 nonce 是至关重要的,因为绕过一个资源的策略是微不足道的。 referrerpolicy
: 表示在获取脚本或脚本获取资源时,要发送哪个 referrer:
no-referrer
:不会发送 Referer 标头。 no-referrer-when-downgrade
(默认):如果没有 TLS(HTTPS)协议,Referer 标头将不会被发送到源上。 origin
:发送的 referrer 将被限制在 referrer 页面的源:其协议、主机和端口。 origin-when-cross-origin
:将会限制发送至其他源的 referrer 的协议、主机和端口号。在同源的导航上仍然包括路径。 same-origin
:在同源内将发送 referrer,但是跨源请求不包含 referrer 信息。 strict-origin
:只在协议安全等级相同时(如 HTTPS→HTTPS)发送文档的源作为 referrer,目标安全性降低(如 HTTPS→HTTP)时不发送。 strict-origin-when-cross-origin
:在执行同源请求时,发送完整的 URL,但只在协议安全级别保持不变(如 HTTPS→HTTPS)时发送源,而在目标安全性降低(如 HTTPS→HTTP)时不发送标头。 unsafe-url
:referrer 将包含源和路径(但不包含片段、密码和用户名)。这个值是不安全的,因为它将 TLS 保护的资源的源和路径泄露给不安全的源。 备注: 空字符串("")既是默认值,也是在不支持 referrerpolicy 的情况下的一个回退值。如果没有在 <script> 元素上明确指定 referrerpolicy,它将采用更高级别的 referrer 策略,即对整个文档或域设置的策略。如果没有更高级别的策略,空字符串将被视为等同于 no-referrer-when-downgrade。 src
: 这个属性定义引用外部脚本的 URI,这可以用来代替直接在文档中嵌入脚本。 type
: 该属性表示所代表的脚本类型。该属性的值可能为以下类型:
module
: 此值导致代码被视为 JavaScript 模块。其中的代码内容会延后处理。charset 和 defer 属性不会生效。对于使用 module 的更多信息,请参见 JavaScript 模块指南。与传统代码不同的是,模块代码需要使用 CORS 协议来跨源获取。 importmap
: 此值代表元素体内包含导入映射(importmap)表。导入映射表是一个 JSON 对象,开发者可以用它来控制浏览器在导入 JavaScript 模块时如何解析模块标识符。 blocking
: 这个属性明确指出,在获取脚本的过程中,某些操作应该被阻断。要阻断的操作必须是一个以空格分隔的列表,下面列出了阻断属性。
render
:屏幕上渲染内容的操作应该被阻断。 创建于 2025/5/22
更新于 2025/5/27