跳到主要内容

<script>


HTML <script> 标签

通过 JavaScript 输出 "Hello world":

<script> document.write("Hello World!") </script>

标签定义及使用说明

<script> 标签用于定义客户端脚本,比如 JavaScript。

<script> 元素既可包含脚本语句,也可以通过 "src" 属性指向外部脚本文件。

JavaScript 通常用于图像操作、表单验证以及动态内容更改。


提示和注释

注意

如果使用 "src" 属性,则 <script> 元素必须是空的。

提示

请参阅 <noscript> 元素,对于那些在浏览器中禁用脚本或者其浏览器不支持客户端脚本的用户来说,该元素非常有用。

注释

有多种执行外部脚本的方法:

  • 如果 async="async":脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
  • 如果不使用 async 且 defer="defer":脚本将在页面完成解析时执行
  • 如果既不使用 async 也不使用 defer:在浏览器继续解析页面之前,立即读取并执行脚本

HTML 4.01 与 HTML5 之间的差异

在 HTML 4 中,"type" 属性是必需的,但在 HTML5 中是可选的。

"async" 属性是 HTML5 中的新属性。

HTML5 中不再支持 HTML 4.01 中的某些属性:"xml:space"。


HTML 与 XHTML 之间的差异

在 XHTML 中,脚本中的内容类型声明为 #PCDATA(代替 CDATA),就是说会对实体进行解析。

这意味着,在 XHTML 中,应该编码所有特殊的字符,或者把所有内容嵌套在 CDATA 部分中:

<script type="text/javascript">
//<![CDATA[
var i=10;
if (i<5)
{
// 代码内容
}
//]]>
</script>

属性

🆕 :HTML5 中的新属性。

属性描述
async🆕async规定异步执行脚本(仅适用于外部脚本)。
charsetcharset规定在脚本中使用的字符编码(仅适用于外部脚本)。
deferdefer规定当页面已完成解析后,执行脚本(仅适用于外部脚本)。
srcURL规定外部脚本的 URL。
typeMIME-type规定脚本的 MIME 类型。
xml:spacepreserveHTML5 不支持。规定是否保留代码中的空白。

全局属性

<script> 标签支持 HTML 的全局属性。


浏览器兼容性

Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
script
async
crossorigin
defer
fetchpriority
Experimental
integrity
language
DeprecatedNon-standard
nomodule
referrerpolicy
src
text
type
type.importmap
type.module