被人問起一個問題:
<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" 屬性本身均支持,但是對於其中設置的腳本語言類型識別與支持各異:
<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" 屬性。