script標籤屬性用type還是language,scriptlanguage

來源:互聯網
上載者:User

script標籤屬性用type還是language,scriptlanguage

被人問起一個問題:

複製代碼 代碼如下:
<script language = "JavaScript">
<script type="text/javascript">
<script>

這三個標籤的使用有什麼區別?

雖然一直在用,卻也沒有好好去弄清楚,這裡詳細說明一下。

查閱一些資料,主要是瀏覽器支援問題。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" 的指令碼。

為了保證指令碼程式可以正常執行,除非特意使用僅 IE 支援的 VBScript 和 Script Encoder 機制外,應當將 SCRIPT 標記的 "type" 屬性設定為 "javascript",並且不要設定已經廢棄的 "Languange" 屬性。

各瀏覽器對於 "type" 和 "language" 屬性本身均支援,但是對於其中設定的指令碼語言類型識別與支援各異:

"type" 和 "language" 同時存在時,所有瀏覽器均優先識別 "type" 屬性內的指令碼類型;
其中 IE 瀏覽器實際支援 JScript 和 VBScript 指令碼語言標示以及 Script Encoder 加密;
Firefox Chrome Safari Opera 對 "type" 屬性值的具體識別寬容度不一致,相對 Chrome Safari 對屬性值正確性校正更加寬鬆,Firefox 的校正最為嚴格;
在 "Language" 屬性值識別寬容度比較中,各瀏覽器中 Chrome Safari 依然最為寬鬆,IE 最為嚴格,Firefox 與 Opera 持平;
Language Encode 比較中,只有 IE 支援 JScript.Encoder 以及 VBScript.Encoder 類型設定,Firefox Chrome Safari均不支援,Opera 中則是該屬性值被修複為預設的 Javascript 指令碼語言後才有輸出值。

複製代碼 代碼如下:
<script language="javascript">
function a() {
 b = "a";
}
a();
alert(b);
</script>

關於變數有一個問題,即使你在函數內如同上面那樣聲明變數,它就會變成全域變數。

如果用 var 聲明就會有一個問題。

複製代碼 代碼如下:
<script language="javascript">
function a() {
 var b = "a";
 delete b;
 alert(b);
}
a();
</script>

結果依然會彈出a。

為了保證指令碼程式可以正常執行,除非特意使用僅 IE 支援的 VBScript 和 Script Encoder 機制外,應當將 SCRIPT 標記的 "type" 屬性設定為 "javascript",並且不要設定已經廢棄的 "Languange" 屬性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.