script
<script>
HTML<script> 元素用于嵌入或引用可执行脚本。
内容类别 | |
---|---|
允许的内容 | 动态脚本,如文本/ JavaScript。 |
标记遗漏 | 没有,起始和结束标签都是强制性的。 |
允许父母 | 任何接受 metadata content 元素,或任何接受 phrasing content 的元素。 |
允许ARIA角色 | 没有 |
DOM界面 | HTMLScriptElement |
属性
这个元素包含全局属性。
async
HTML5该布尔属性指示浏览器是否在允许的情况下异步执行该脚本。该属性对于内联脚本无作用 (即没有src
属性的脚本)。
动态插入的脚本默认情况下是异步执行的,所以打开同步执行(即脚本以加载的顺序执行)设置async=false
指示表示的脚本的类型。此属性的值将在以下类别之一中:
省略或JavaScript MIME类型:
对于符合HTML5的浏览器,这表示脚本是JavaScript。HTML5规范敦促作者省略该属性,而不是提供冗余的MIME类型。在早期的浏览器中,这标识了嵌入或导入(通过src
属性)代码的脚本语言。规范中列出了 JavaScript MIME类型。
module**
:** HTML5对于符合HTML5的浏览器,代码被视为JavaScript模块。脚本内容的处理不受charset
和defer
属性的影响。有关使用的信息module
,请参见深度:模块中的ES6。
任何其他值或MIME类型:
嵌入式内容被视为不会被浏览器处理的数据块。该src
属性将被忽略。
请注意,在Firefox中,您可以使用高级功能,例如稍后JS版本中的let语句和其他功能type=application/javascript;version=1.8
。但是,要小心,因为这是一个非标准的功能,这很可能会打破对其他浏览器的支持,特别是基于Chromium的浏览器。
关于如何包含异国情调的编程语言
,请阅读关于Rosetta。
已弃用的属性
language
与type
属性一样,此属性标识正在使用的脚本语言。type
然而,与属性不同的是,这个属性的可能值从未标准化。type
应该使用该属性来代替。
注意
浏览器继续解析页面之前,立即获取并执行没有async
或defer
属性的脚本以及内联脚本。
该脚本应该与text/javascript
MIME类型一起提供,但是浏览器是宽松的,只有在脚本使用图像类型(image/*
),视频类型(video/*
),音频(audio/*
)类型或者text/csv
。如果脚本被阻塞,error
则发送给元素,否则load
发送事件。
例子
<!-- HTML4 and (x)HTML -->
<script type="text/javascript" src="javascript.js"></script>
<!-- HTML5 -->
<script src="javascript.js"></script>
规范
Specification | Status | Comments |
---|---|---|
HTML Living StandardThe definition of '<script>' in that specification. | Living Standard | Adds the module type |
HTML5The definition of '<script>' in that specification. | Recommendation | |
HTML 4.01 SpecificationThe definition of '<script>' in that specification. | Recommendation | |
Subresource IntegrityThe definition of '<script>' in that specification. | Recommendation | Adds the integrity attribute. |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 1 | (Yes) | 11 | (Yes) | (Yes) | (Yes) |
async | 1 | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
crossorigin | 30 | (Yes) | 13 | No | 12.5 | (Yes)2 |
defer | (Yes) | (Yes) | 3.53 | 104 | No | (Yes) |
integrity | 45 | No | 43 | No | ? | No5 |
language | 1 | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
module | No | No | No | No | No | (Yes) |
nomodule | (Yes) | No | (Yes)6 | No | No | No |
src | 1 | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
text | 1 | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
type | 1 | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | 11 | (Yes) | (Yes) | (Yes) |
async | (Yes) | (Yes) | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
crossorigin | (Yes) | (Yes) | ? | 13 | No | ? | ? |
defer | (Yes) | (Yes) | (Yes) | 1.0 | No | ? | (Yes) |
integrity | 45 | 45 | No | 43 | No | ? | No |
language | (Yes) | (Yes) | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
module | No | No | No | No | No | No | (Yes) |
nomodule | (Yes) | (Yes) | No | (Yes)6 | No | ? | No |
src | (Yes) | (Yes) | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
text | (Yes) | (Yes) | (Yes) | 1 | (Yes) | (Yes) | (Yes) |
type | (Yes) | (Yes) | (Yes) | 1 | (Yes) | (Yes) | (Yes) |