<script> 标签主要用于在 HTML 文档中嵌入或引用 JavaScript 代码。随着 HTML5 的发展,<script> 标签支持了一些新的属性,以增强对脚本加载和执行的控制。以下是 <script> 标签的一些常用属性:
-
async:- 作用:该属性表示脚本应当异步加载,即脚本的加载不会阻塞页面的构建。脚本会在下载完成后立即执行,但不一定是在其他脚本之后。
- 适用范围:仅适用于外部脚本(即具有
src属性的脚本)。
-
defer:- 作用:该属性表示脚本应当在文档解析完成后,但在
DOMContentLoaded事件触发之前执行。所有带有defer属性的脚本都会按照它们在文档中的出现顺序执行。 - 适用范围:同样适用于外部脚本。
- 作用:该属性表示脚本应当在文档解析完成后,但在
-
src:- 作用:指定外部 JavaScript 文件的 URL 地址。
- 适用范围:用于加载外部脚本文件。
-
type:- 作用:定义脚本的 MIME 类型。在 HTML5 中,默认值为
"text/javascript",并且通常不需要显式指定。 - 历史背景:在较早的 HTML 版本中,这通常是必需的,例如
type="text/javascript"。在现代 HTML 中,type属性也可以用于指定模块脚本,例如type="module"。
- 作用:定义脚本的 MIME 类型。在 HTML5 中,默认值为
-
charset:- 作用:定义脚本字符集。尽管这个属性仍然存在,但在大多数情况下,它不是必要的,因为文档的字符集通常已经在
<meta>标签中定义了。
- 作用:定义脚本字符集。尽管这个属性仍然存在,但在大多数情况下,它不是必要的,因为文档的字符集通常已经在
-
language:- 作用:早期 HTML 版本中用于指定脚本语言的属性。在现代 HTML 中,这个属性已经不再推荐使用,因为默认脚本语言是 JavaScript。
-
nomodule:- 作用:指定脚本不应在支持 JavaScript 模块的浏览器中执行。这个属性用于向后兼容那些还没有支持模块的环境。
-
integrity:- 作用:用于指定一个子资源完整性哈希值,以验证从外部来源加载的脚本的完整性。这是 Subresource Integrity (SRI) 的一部分,用于增加安全性。
-
crossorigin或crossOrigin:- 作用:定义脚本是否应该使用 CORS(跨源资源共享)来获取外部脚本。这可以用于允许脚本在不同域之间共享数据。
这些属性可以帮助开发者更好地控制脚本的加载和执行方式,从而优化页面性能和用户体验。在实际应用中,根据脚本的需求选择适当的属性是非常重要的。