2 在 HTML 中使用 JavaScript

本章內(nèi)容

  • 使用<script>元素
  • 嵌入腳本與外部腳本
  • 文檔模式對(duì) JavaScript 的影響
  • 考慮禁用 JavaScript 的場(chǎng)景

2.1 <script> 元素

HTML 4.0.1為 <script> 定義了下列6個(gè)屬性。

  • async: 可選。
  • charset: 可選。
  • defer: 可選。
  • language: 已廢棄。
  • src: 可選。
  • type: 可選。
<script type="text/javascript">
  function sayHi () {
    alert("Hi!");
  }
</script>
<script type="text/javascript" src="example.js"></script>

2.1.1 標(biāo)簽的位置

按照慣例所有<script>元素都應(yīng)該放在頁(yè)面的<head>元素中。在<head>中包含所有 JavaScript 文件,意味著必須等到全部 JavaScript 代碼都被下載、解析完成以后,才能開(kāi)始呈現(xiàn)頁(yè)面的內(nèi)容。
為避免這個(gè)問(wèn)題,現(xiàn)代 Web 應(yīng)用程序一般都把全部 JavaScript 引用放在<body>元素中頁(yè)面的內(nèi)容后面。

2.1.2 延遲腳本

<script type="text/javascript" defer="defer" src="example.js"></script>

2.1.3 異步腳本

<script type="text/javascript" async src="example.js"></script>

2.1.4 在 XHTML 中的用法

<script type="text/javascript">
//<![CDATA[
  //Your code here.
//]]>
</script>

2.1.5 不推薦使用的語(yǔ)法

沒(méi)有必要在使用

2.2 嵌入代碼與外部文件

  • 可維護(hù)性
  • 可緩存
  • 適應(yīng)未來(lái)

2.3 文檔模式

<!--  HTML 5 -->
<!DOCTYPE html>

2.4 <noscript>元素

  • 瀏覽器不支持腳本
  • 瀏覽器支持腳本,但腳本被禁用
<body>
  <noscript>
    <p>本頁(yè)面需要瀏覽器支持 (啟用)JavaScript.
  </noscript>
</body>

2.5 小結(jié)

  • 在包含外部 JavaScript 文件時(shí),必須將 src 屬性設(shè)置為指向相應(yīng)文件的 URL。
  • 所有<script>元素都會(huì)按照它們?cè)陧?yè)面中出現(xiàn)的先后順序依次被解析。在不使用 defer 和 async 屬性的情況下。
  • 一般應(yīng)該把<script>元素放在</body>標(biāo)簽前面。
  • 使用 defer 屬性可以讓腳本在文檔完全呈現(xiàn)之后再執(zhí)行。延遲腳本總是按照指定它們的順序執(zhí)行。
  • 使用 async 屬性可以表示當(dāng)前腳本不必等待其他腳本, 也不必阻塞文檔呈現(xiàn)。不能保證異步腳本按照它們?cè)陧?yè)面中出現(xiàn)的順序執(zhí)行。
    另外,使用<noscript>元素可以指定在不支持腳本的瀏覽器中顯示的替代內(nèi)容。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容