稍微學過一點網頁寫的同學都知道,網頁中的js程式碼應該寫在 script 標籤中,但為什麼要這麼做呢?本文就介紹一下script標籤。
最初,網景公司想要在瀏覽器中展示使用js的html文件,但是又不想影響這個文件在其他瀏覽器中的顯示效果,於是創造了script 標籤
我們都知道標籤可以在裡面添加屬性,script標籤有下面的屬性:
<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>
注意:
本來標籤應該放在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中文網其他相關文章!