`<script>` 标签用于在 HTML 或 XHTML 文档中嵌入 JavaScript 代码。它不仅可以用于嵌入代码,还可以用于链接外部的 JavaScript 文件。以下是一些常用的 `<script>` 标签属性及其详细说明:
1. **src**: 指定外部 JavaScript 文件的 URL。当使用 `src` 属性时,通常不会在 `<script>` 标签内写入任何 JavaScript 代码。
**示例**:
```html
<script src="path/to/your-script.js"></script>
```
2. **type**: 指定脚本的 MIME 类型。在 HTML5 中,如果你使用的是 JavaScript,默认的 MIME 类型是 `text/javascript`,所以这个属性通常是可选的。
**示例**:
```html
<script type="text/javascript">alert('Hello, world!');</script>
```
3. **async**: 表示脚本可以异步加载,即在页面继续解析的同时下载脚本,但脚本将在文档完成解析后执行。这不会保证脚本的加载顺序。
**示例**:
```html
<script src="path/to/your-script.js" async></script>
```
4. **defer**: 表示脚本将在文档解析完成后,DOMContentLoaded 事件触发前执行。如果多个脚本设置了 `defer`,它们将按照在文档中出现的顺序执行。
**示例**:
```html
<script src="path/to/your-script.js" defer></script>
```
5. **charset**: 指定脚本文件的字符集。
**示例**:
```html
<script src="path/to/your-script.js" charset="UTF-8"></script>
```
6. **crossorigin**: 用于设置 CORS(跨源资源共享)策略。它可以是 `anonymous` 或 `use-credentials`。
**示例**:
```html
<script src="https://example.com/script.js" crossorigin="anonymous"></script>
```
7. **integrity**: 用于验证从外部获取的脚本是否被篡改。它是一个加密哈希值,用于与下载的脚本进行比较。
**示例**:
```html
<script src="path/to/your-script.js" integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"></script>
```
8. **nonce**: 一个随机数或字符串,用于防止脚本注入攻击。
**示例**:
```html
<script src="path/to/your-script.js" nonce="randomString"></script>
```
9. **nomodule**: 表示脚本仅在不支持 JavaScript 模块的浏览器中执行。
**示例**:
```html
<script type="module" src="path/to/your-module.js"></script>
<script nomodule src="path/to/your-fallback.js"></script>
```
10. **language**: 虽然 `type` 属性已经足够,但这是一个旧的属性,用于指定脚本语言。
**示例**:
```html
<script language="JavaScript">alert('Hello, world!');</script>
```
请注意,`<script>` 标签可以放在 HTML 文档的 `<head>` 或 `<body>` 中。通常建议将脚本放在页面底部,即 `</body>` 标签之前,以避免阻塞页面渲染。