script標(biāo)簽屬性type與language使用選擇
被人問起一個(gè)問題:
<script language = "JavaScript"> <script type="text/javascript"> <script>
這三個(gè)標(biāo)簽的使用有什么區(qū)別?
雖然一直在用,卻也沒有好好去弄清楚,這里詳細(xì)說明一下。
查閱一些資料,主要是瀏覽器支持問題。type 和 language 屬性都可用來指定 <script> 標(biāo)簽中的腳本的類型。language 屬性在 HTML 和 XHTML 標(biāo)準(zhǔn)中受到了非議,這兩個(gè)標(biāo)準(zhǔn)提倡使用 type 屬性。遺憾的是,這兩個(gè)屬性的值是不一樣的。
您可能偶爾會(huì)看見 language 的值為 VBScript(對 type 而言是 text/vbscript),表示包含的腳本代碼是用 Microsoft 的 Visual Basic Script 編寫的。
利用 JavaScript,您還可以使用 language 的值 "JavaScript 1.1",表示包含的腳本語句只能被 Netscape 3.0 或更新的版本處理。Netscape 2.0 只支持 JavaScript 1.0,而無法處理標(biāo)記為 "JavaScript 1.1" 的腳本。
為了保證腳本程序可以正常執(zhí)行,除非特意使用僅 IE 支持的 VBScript 和 Script Encoder 機(jī)制外,應(yīng)當(dāng)將 SCRIPT 標(biāo)記的 "type" 屬性設(shè)置為 "javascript",并且不要設(shè)置已經(jīng)廢棄的 "Languange" 屬性。
各瀏覽器對于 "type" 和 "language" 屬性本身均支持,但是對于其中設(shè)置的腳本語言類型識(shí)別與支持各異:
- "type" 和 "language" 同時(shí)存在時(shí),所有瀏覽器均優(yōu)先識(shí)別 "type" 屬性內(nèi)的腳本類型;
- 其中 IE 瀏覽器實(shí)際支持 JScript 和 VBScript 腳本語言標(biāo)示以及 Script Encoder 加密;
- Firefox Chrome Safari Opera 對 "type" 屬性值的具體識(shí)別寬容度不一致,相對 Chrome Safari 對屬性值正確性校驗(yàn)更加寬松,F(xiàn)irefox 的校驗(yàn)最為嚴(yán)格;
- 在 "Language" 屬性值識(shí)別寬容度比較中,各瀏覽器中 Chrome Safari 依然最為寬松,IE 最為嚴(yán)格,F(xiàn)irefox 與 Opera 持平;
- Language Encode 比較中,只有 IE 支持 JScript.Encoder 以及 VBScript.Encoder 類型設(shè)置,F(xiàn)irefox Chrome Safari均不支持,Opera 中則是該屬性值被修復(fù)為默認(rèn)的 Javascript 腳本語言后才有輸出值。
<script language="javascript"> function a() { b = "a"; } a(); alert(b); </script>
關(guān)于變量有一個(gè)問題,即使你在函數(shù)內(nèi)如同上面那樣聲明變量,它就會(huì)變成全局變量。
如果用 var 聲明就會(huì)有一個(gè)問題。
<script language="javascript"> function a() { var b = "a"; delete b; alert(b); } a(); </script>
結(jié)果依然會(huì)彈出a。
為了保證腳本程序可以正常執(zhí)行,除非特意使用僅 IE 支持的 VBScript 和 Script Encoder 機(jī)制外,應(yīng)當(dāng)將 SCRIPT 標(biāo)記的 "type" 屬性設(shè)置為 "javascript",并且不要設(shè)置已經(jīng)廢棄的 "Languange" 屬性。
- JavaScript動(dòng)態(tài)添加css樣式和script標(biāo)簽
- IE8中動(dòng)態(tài)創(chuàng)建script標(biāo)簽onload無效的解決方法
- 動(dòng)態(tài)創(chuàng)建script標(biāo)簽實(shí)現(xiàn)跨域資源訪問的方法介紹
- Script標(biāo)簽與訪問HTML頁面詳解
- javascript標(biāo)簽在頁面中的位置探討
- script標(biāo)簽的 charset 屬性使用說明
- javascript 獲取url參數(shù)和script標(biāo)簽中獲取url參數(shù)函數(shù)代碼
- asp.net(C#) 動(dòng)態(tài)添加非ASP的標(biāo)準(zhǔn)html控件(如添加Script標(biāo)簽)
- 有趣的script標(biāo)簽用getAttribute方法來自腳本吧
- 淺談js script標(biāo)簽中的預(yù)解析
相關(guān)文章
Bootstrap實(shí)現(xiàn)響應(yīng)式導(dǎo)航欄效果
這篇文章主要介紹了Bootstrap實(shí)現(xiàn)響應(yīng)式導(dǎo)航欄效果,導(dǎo)航欄是一個(gè)很好的功能,是Bootstrap網(wǎng)站的一個(gè)突出特點(diǎn),本文帶領(lǐng)大家學(xué)習(xí)實(shí)現(xiàn)Bootstrap導(dǎo)航欄,需要的朋友可以參考下2015-12-12JavaScript 經(jīng)典實(shí)例日常收集整理(常用經(jīng)典)
本文是小編日常收集整理些js經(jīng)典實(shí)例,非常具有參考借鑒價(jià)值,需要的朋友一起了解了解吧2016-03-03JS實(shí)現(xiàn)拼音(字母)匹配漢字(姓名)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)拼音(字母)匹配(搜索)漢字(姓名)的效果,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-04-04JavaScript中的object轉(zhuǎn)換成number或string規(guī)則介紹
這篇文章主要介紹了JavaScript中的object轉(zhuǎn)換成number或string規(guī)則介紹,本文講解了object自動(dòng)轉(zhuǎn)換成string的規(guī)則、object自動(dòng)轉(zhuǎn)換成number的規(guī)則等內(nèi)容,需要的朋友可以參考下2014-12-12JavaScript hasOwnProperty() 函數(shù)實(shí)例詳解
hasOwnProperty()函數(shù)用于指示一個(gè)對象自身(不包括原型鏈)是否具有指定名稱的屬性。下面通過本文給大家分享JavaScript hasOwnProperty() 函數(shù)實(shí)例講解,感興趣的朋友一起看看吧2017-08-08JavaScript實(shí)現(xiàn)創(chuàng)建自定義對象的常用方式總結(jié)
這篇文章主要介紹了JavaScript實(shí)現(xiàn)創(chuàng)建自定義對象的常用方式,結(jié)合實(shí)例形式總結(jié)分析了JavaScript工廠模式、構(gòu)造函數(shù)模式、原型模式、組合模式等常用的自定義對象創(chuàng)建模式操作與使用技巧,需要的朋友可以參考下2018-07-07JavaScript實(shí)現(xiàn)選中文字提示新浪微博分享效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)選中文字提示新浪微博分享效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06利用js判斷數(shù)據(jù)是否是數(shù)組或字符串的常見方法
這篇文章主要給大家介紹了關(guān)于利用js判斷數(shù)據(jù)是否是數(shù)組或字符串的常見方法,其實(shí)有很多方法可以判斷數(shù)據(jù)是否是數(shù)組或字符串,需要的朋友可以參考下2023-07-07JS實(shí)現(xiàn)面向?qū)ο罄^承的5種方式分析
這篇文章主要介紹了JS實(shí)現(xiàn)面向?qū)ο罄^承的5種方式,結(jié)合實(shí)例形式分析了JavaScript面向?qū)ο罄^承功能的5種常見實(shí)現(xiàn)方法原理與操作技巧,需要的朋友可以參考下2018-07-07