HTML <script> 标签

<script> 标签通常放置在一个 HTML 网页的头部标签 <head> 标签内,用于链接外部 JavaScript 文件的外部资源标签。

实例

通过 JavaScript 输出 "Hello world":

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

浏览器支持

所有主流浏览器都支持 <script> 标签。


标签定义及使用说明

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

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

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


提示和注释

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

注释:假如 <script> 元素内部的代码没有位于某个函数中,那么这些代码会在页面被加载时被立即执行。<frameset> 标签之后的脚本会被忽略。

提示:请参阅 <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)
  {
  // some code
  }
//]]>
</script>
 

属性

New :HTML5 中的新属性。

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

全局属性

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