JavaScript之script標籤屬性講解
<script>定義了6個屬性:
1、async 表示立即下載該指令碼,但不妨礙頁面中的其他操作(比如:下載其他資源或等待載入其他指令碼),只對外部檔案有效。
2、charset 屬性與 src 屬性一起使用,告訴瀏覽器用來編碼這個 javascript 程式的字符集。它的值是任何一個 ISO 標準字符集編碼的名稱。由於大多數瀏覽器會忽略它的值,因此這個屬性很少有人用。
3、defer 表示指令碼可以延遲到文件完全被解析和顯示後再執行。只對外部檔案有效。
4、language 已廢棄。 原來用於表示編寫程式碼用的指令碼語言,因大多數瀏覽器都會忽略這個屬性,因此也沒必要再用了。
5、src 表示包含要執行程式碼的外部檔案。
6、type 可以看成language的替代屬性;表示編寫程式碼使用的指令碼語言的內容型別。預設值為text/javascript。
注意:
1、傳統做法是將所有的<script>元素都放在頁面的<head>元素中,但是這樣頁面響應就會比較慢(必須等到全部的Javascript程式碼都被下載、解析和執行完後,才能呈現頁面內容)。現在的做法一般都是將Javascript引用放在<body>元素中頁面內容的後面。
2、defer和asyncd的作用基本相似。定義defer=“defer”的指令碼將延遲到瀏覽器遇到</html>標籤後再執行,原則上是延遲指令碼還是按照原來的順序執行,但是實際上執行的順序不一定按照指定順序執行。但是HTML5(以後稱為H5)中已經明確規定,defer屬性只使用於外部指令碼檔案,因此支援H5的實現會忽略給嵌入指令碼設定的defer屬性。async也只適用於外部指令碼檔案,並告訴瀏覽器立即下載指令碼檔案。但與defer不同的是,它並不保證按照指定順序執行,又稱為非同步指令碼標籤(各指令碼檔案相互獨立,互不依賴)。
使用<script>元素方式有兩種:
1、直接嵌入Javascript程式碼。
<script type="text/javascript">
function a( ){...//禁止出現沒有轉義的script,否則解析出錯}
</script>
2、包含外部Javascript檔案。
<script type="text/javascript" src="example.js"></script>//其中src可以使用外部域的路徑,但是為了安全需謹慎使用