首頁  >  文章  >  web前端  >  了解一下HTML中的script標籤

了解一下HTML中的script標籤

青灯夜游
青灯夜游轉載
2020-07-06 10:24:274619瀏覽

了解一下HTML中的script標籤

稍微學過一點網頁寫的同學都知道,網頁中的js程式碼應該寫在 script 標籤中,但為什麼要這麼做呢?本文就介紹一下script標籤。

script 標籤

最初,網景公司想要在瀏覽器中展示使用js的html文件,但是又不想影響這個文件在其他瀏覽器中的顯示效果,於是創造了script 標籤

我們都知道標籤可以在裡面添加屬性,script標籤有下面的屬性:

  • async 表示立即下載該腳本,不應該妨礙介面中其他操作
  • src 表示要執行這個腳本的外部文件,可選
  • charset src指定的外部文件的字元集
  • defer 腳本延遲到文件解析顯示完成之後執行,可選
  • language 已經廢棄
  • type 重要,用於替代language屬性,預設為text/javascript,所以這個參數一般不需要可以指定。
<script type="text/javascript">
    // 属性设置
    function SayHi(){
        alert("Hi");
    }
</script>
<!-- 注意下面的写法    /> 这么写本身没有问题,但是不能在html中使用这种语法,因为这样会打乱html的解析 -->
<script type="text/javascript" src="2.js"/>
// 必须写成下面的样子
<script type="text/javascript" src="2.js"></script>

注意:

  • 在解釋器對script標籤中的程式碼求值完畢之前,頁面中的其餘內容都不會被瀏覽器載入或顯示
  • 有src的標籤中如果還有js程式碼會被忽略,所以寫了src就不該在其中再寫程式碼了
  • 盡量使用外部檔案寫js,盡量少的使用內嵌js,這樣一來維護方便,js都在一個地方,而來如果兩個頁面使用了同一個js,它可以緩存

script 標籤位置

本來標籤應該放在header裡面,但因為放在header中,在載入js的時候,頁面還不會渲染(頁面只有載入到body才會開始渲染),導致頁面出現較長的白,所以現在我們放在body的最後

<body>
...

<script src="1.js"></script>
<script src="2.js"></script>
<script src="3.js"></script>
</body>

在script中加入defer屬性之後,放到header中理論上也可以達到延遲執行的目的,但是由於不同瀏覽器對於defer的支援不同(執行順序不確定,內嵌的js不支援defer等),最好我們還是按照上面的寫法寫在body的最後

async屬性也是為了解決腳本非同步加載的問題,同樣也是不支援嵌入的js腳本,本來它跟defer的區別是defer 按順序加載,async不按順序加載,但是在實際使用中,瀏覽器對於這個屬性的支援也不一樣,兩個屬性都不能保證腳本的順序執行以及在DOMContentLoaded之前執行,所以在瀏覽器徹底支援之前,最好還是不要用這個屬性了。

標籤

當瀏覽器停用js或是瀏覽器完全不支援js(當然現在這種很少了),需要平穩退化,所以需要noscript標籤

它的作用是,當發生上面提到的情況的時候,顯示noscript中的內容,看下面的例子

<html>
    <head>
        <script src="2.js"></script>
    </head>
    <body>
        <noscript>
            <p>本页面需要浏览器支持(启用)JavaScript</p>
        </noscript>
    </body>
</html>

注意如果瀏覽器啟用了JS,則這個標籤裡的內容不會顯示。

推薦教學:HTML教學JavaScript影片教學

#

以上是了解一下HTML中的script標籤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除