1.</script>標籤
在一對<script>和</script>標籤內部不可以再出現</script>,否則會引發錯誤。要解決此問題,可以使用逸出字元。例如,下面的代碼會出現錯誤:
<script type=”text/javascript”> function sayScript(){ alert(“</script>”); } </script> 但是,下面的代碼不會出現錯誤: <script type=”text/javascript”> function sayScript(){ alert(“<\/script>”); //使用了逸出字元 } </script>
2.XHTML中的JavaScript
(1)XHTML中引入外部指令碼的方式如下:
<script type=”text/javascript” src=”example.js” />
(2)XHTML中<script>和</script>內部的指令碼中不可出現小於符號“<”,否則會按照XHTML元素的開始標籤處理。可以利用XHTML中的CDATA塊來解決此問題。考慮到一些瀏覽器對HTML的相容性不是很好,因此,在聲明CDATA處須使用JavaScript的單行注釋,例如: <script type=”text/javascript”> //<![CDATA[ function compare(a, b) { if (a < b) { alert(“A is less than B”); } else if (a > b) { alert(“A is greater than B”); } else { alert(“A is equal to B”); } } //]]> </script> 3.<script>標籤的屬性 (1) language 屬性不贊成使用,已被 type 屬性替代。type 屬性在HTML5中不是必須的,但 XHTML 中是必須的。 (2)如果 async 屬性為 true,則指令碼會相對於文檔的其餘部分非同步執行,這樣指令碼會可以在頁面繼續解析的過程中來執行。 如果 async 屬性為 false,而 defer 屬性為 true,則指令碼會在頁面完成解析時得到執行。 如果 async 和 defer 屬性均為 false,那麼指令碼會立即執行,頁面會在指令碼執行完畢繼續解析。 async 和 defer 屬性只適用於引入外部指令碼的 <script> 標籤中。最好外部指令碼不 會改變HTML文檔的DOM結構。
4.<noscript>元素
該元素中可以包含除了 <script> 元素外的任何元素或內容,內容會在不支援JavaScript以及 JavaScript 被禁用的瀏覽器中被呈現。如果瀏覽器支援且未禁用JavaScript,則內容不會被呈現。