HTML < script> 標(biāo)簽
實(shí)例
通過(guò) JavaScript 輸出 "Hello world":
document.write("Hello World!")
</script>
瀏覽器支持
所有主流瀏覽器都支持 <script> 標(biāo)簽。
標(biāo)簽定義及使用說(shuō)明
<script> 標(biāo)簽用于定義客戶(hù)端腳本,比如 JavaScript。
<script> 元素既可包含腳本語(yǔ)句,也可以通過(guò) "src" 屬性指向外部腳本文件。
JavaScript 通常用于圖像操作、表單驗(yàn)證以及動(dòng)態(tài)內(nèi)容更改。
提示和注釋
注釋?zhuān)?/strong>如果使用 "src" 屬性,則 <script> 元素必須是空的。
注釋?zhuān)?/b>假如 <script> 元素內(nèi)部的代碼沒(méi)有位于某個(gè)函數(shù)中,那么這些代碼會(huì)在頁(yè)面被加載時(shí)被立即執(zhí)行。<frameset> 標(biāo)簽之后的腳本會(huì)被忽略。
提示:請(qǐng)參閱 <noscript> 元素,對(duì)于那些在瀏覽器中禁用腳本或者其瀏覽器不支持客戶(hù)端腳本的用戶(hù)來(lái)說(shuō),該元素非常有用。
注釋?zhuān)?/strong>有多種執(zhí)行外部腳本的方法:
- 如果 async="async":腳本相對(duì)于頁(yè)面的其余部分異步地執(zhí)行(當(dāng)頁(yè)面繼續(xù)進(jìn)行解析時(shí),腳本將被執(zhí)行)
- 如果不使用 async 且 defer="defer":腳本將在頁(yè)面完成解析時(shí)執(zhí)行
- 如果既不使用 async 也不使用 defer:在瀏覽器繼續(xù)解析頁(yè)面之前,立即讀取并執(zhí)行腳本
HTML 4.01 與 HTML5之間的差異
在 HTML 4 中,"type" 屬性是必需的,但在 HTML5 中是可選的。
"async" 屬性是 HTML5 中的新屬性。
HTML5 中不再支持 HTML 4.01 中的某些屬性:"xml:space"。
HTML 與 XHTML 之間的差異
在 XHTML 中,腳本中的內(nèi)容類(lèi)型聲明為 #PCDATA(代替 CDATA),就是說(shuō)會(huì)對(duì)實(shí)體進(jìn)行解析。
這意味著,在 XHTML 中,應(yīng)該編碼所有特殊的字符,或者把所有內(nèi)容嵌套在 CDATA 部分中:
//<![CDATA[
var i=10;
if (i<5)
{
// some code
}
//]]>
</script>
屬性
New :HTML5 中的新屬性。
屬性 | 值 | 描述 |
---|---|---|
asyncNew | async | 規(guī)定異步執(zhí)行腳本(僅適用于外部腳本)。 |
charset | charset | 規(guī)定在腳本中使用的字符編碼(僅適用于外部腳本)。 |
defer | defer | 規(guī)定當(dāng)頁(yè)面已完成解析后,執(zhí)行腳本(僅適用于外部腳本)。 |
src | URL | 規(guī)定外部腳本的 URL。 |
type | MIME-type | 規(guī)定腳本的 MIME 類(lèi)型。 |
xml:space | preserve | HTML5 不支持。規(guī)定是否保留代碼中的空白。 |
全局屬性
<script> 標(biāo)簽支持 HTML 的全局屬性。
相關(guān)文章
HTML 教程:HTML 腳本
HTML DOM 參考手冊(cè):HTML DOM Script 對(duì)象