script標簽屬性type與language使用選擇
被人問起一個問題:
<script language = "JavaScript"> <script type="text/javascript"> <script>
這三個標簽的使用有什么區(qū)別?
雖然一直在用,卻也沒有好好去弄清楚,這里詳細說明一下。
查閱一些資料,主要是瀏覽器支持問題。type 和 language 屬性都可用來指定 <script> 標簽中的腳本的類型。language 屬性在 HTML 和 XHTML 標準中受到了非議,這兩個標準提倡使用 type 屬性。遺憾的是,這兩個屬性的值是不一樣的。
您可能偶爾會看見 language 的值為 VBScript(對 type 而言是 text/vbscript),表示包含的腳本代碼是用 Microsoft 的 Visual Basic Script 編寫的。
利用 JavaScript,您還可以使用 language 的值 "JavaScript 1.1",表示包含的腳本語句只能被 Netscape 3.0 或更新的版本處理。Netscape 2.0 只支持 JavaScript 1.0,而無法處理標記為 "JavaScript 1.1" 的腳本。
為了保證腳本程序可以正常執(zhí)行,除非特意使用僅 IE 支持的 VBScript 和 Script Encoder 機制外,應當將 SCRIPT 標記的 "type" 屬性設置為 "javascript",并且不要設置已經(jīng)廢棄的 "Languange" 屬性。
各瀏覽器對于 "type" 和 "language" 屬性本身均支持,但是對于其中設置的腳本語言類型識別與支持各異:
- "type" 和 "language" 同時存在時,所有瀏覽器均優(yōu)先識別 "type" 屬性內的腳本類型;
- 其中 IE 瀏覽器實際支持 JScript 和 VBScript 腳本語言標示以及 Script Encoder 加密;
- Firefox Chrome Safari Opera 對 "type" 屬性值的具體識別寬容度不一致,相對 Chrome Safari 對屬性值正確性校驗更加寬松,F(xiàn)irefox 的校驗最為嚴格;
- 在 "Language" 屬性值識別寬容度比較中,各瀏覽器中 Chrome Safari 依然最為寬松,IE 最為嚴格,F(xiàn)irefox 與 Opera 持平;
- Language Encode 比較中,只有 IE 支持 JScript.Encoder 以及 VBScript.Encoder 類型設置,F(xiàn)irefox Chrome Safari均不支持,Opera 中則是該屬性值被修復為默認的 Javascript 腳本語言后才有輸出值。
<script language="javascript">
function a() {
b = "a";
}
a();
alert(b);
</script>
關于變量有一個問題,即使你在函數(shù)內如同上面那樣聲明變量,它就會變成全局變量。
如果用 var 聲明就會有一個問題。
<script language="javascript">
function a() {
var b = "a";
delete b;
alert(b);
}
a();
</script>
結果依然會彈出a。
為了保證腳本程序可以正常執(zhí)行,除非特意使用僅 IE 支持的 VBScript 和 Script Encoder 機制外,應當將 SCRIPT 標記的 "type" 屬性設置為 "javascript",并且不要設置已經(jīng)廢棄的 "Languange" 屬性。
- JavaScript動態(tài)添加css樣式和script標簽
- IE8中動態(tài)創(chuàng)建script標簽onload無效的解決方法
- 動態(tài)創(chuàng)建script標簽實現(xiàn)跨域資源訪問的方法介紹
- Script標簽與訪問HTML頁面詳解
- javascript標簽在頁面中的位置探討
- script標簽的 charset 屬性使用說明
- javascript 獲取url參數(shù)和script標簽中獲取url參數(shù)函數(shù)代碼
- asp.net(C#) 動態(tài)添加非ASP的標準html控件(如添加Script標簽)
- 有趣的script標簽用getAttribute方法來自腳本吧
- 淺談js script標簽中的預解析
相關文章
重寫JS setTimeout 方法 JavaScript Hook
想要重寫 setTimeout 方法,發(fā)現(xiàn)有動態(tài)引入的js,需要改成自己的js,以下教教大家這個需求,防止網(wǎng)站被劫持2023-07-07
淺談js函數(shù)三種定義方式 & 四種調用方式 & 調用順序
下面小編就為大家?guī)硪黄獪\談js函數(shù)三種定義方式 & 四種調用方式 & 調用順序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
JavaScript實現(xiàn)頁面滾動圖片加載(仿lazyload效果)
網(wǎng)上的很多這樣的效果都是用jQuery的方法,可是如果不用jQuery的站長難道就不能用這種方法了么2011-07-07
JavaScript仿京東實現(xiàn)秒殺倒計時案例詳解
這篇文章主要為大家詳細介紹了如何利用JavaScript實現(xiàn)京東秒殺倒計時效果,文中示例代碼介紹的非常詳細,感興趣的小伙伴們可以參考一下2022-03-03

