被問一個問題: <BR><script type="text/javascript"> <BR><script> <BR><STRONG>這三個標籤的使用有什麼區別? <BR>雖然一直在用,卻也沒有好好去弄清楚,這裡詳細說明一下。 <BR>查閱一些資料,主要是瀏覽器支援問題。 type 和 language 屬性都可用於指定 <script> 標籤中的腳本的類型。 language 屬性在 HTML 和 XHTML 標準中受到了非議,這兩個標準提倡使用 type 屬性。遺憾的是,這兩個屬性的值是不一樣的。 <br><br>您可能偶爾會看見 language 的值為 VBScript(對 type 而言是 text/vbscript),表示包含的腳本程式碼是用 Microsoft 的 Visual Basic Script 編寫的。 <br><br>利用 JavaScript,您也可以使用 language 的值 "JavaScript 1.1",表示包含的腳本語句只能被 Netscape 3.0 或更新的版本處理。 Netscape 2.0 只支援 JavaScript 1.0,無法處理標示為 "JavaScript 1.1" 的腳本。 <br><br>為了確保腳本程式可以正常執行,除非刻意使用僅IE 支援的VBScript 和Script Encoder 機制外,應當將SCRIPT 標記的"type" 屬性設為"javascript",並且不要設定已經廢棄的" Languange" 屬性。 <BR>各瀏覽器對於"type" 和"language" 屬性本身均支持,但是對於其中設定的腳本語言類型識別與支持各異: <BR>"type" 和"language" 同時存在時,所有瀏覽器均優先識別"type" 屬性內的腳本類型; <BR>其中IE 瀏覽器實際支援JScript 和VBScript 腳本語言標示以及Script Encoder 加密; <BR>Firefox Chrome Safari Opera 對"type" 屬性值的具體識別寬容度不一致,相對Chrome Safari 對屬性值正確性校驗更加寬鬆,Firefox 的校驗最為嚴格; <BR>在"Language" 屬性值識別寬容度比較中,各瀏覽器中Chrome Safari 依然最為寬鬆,IE 最為嚴格,Firefox 與Opera 持平;<BR>Language Encode 比較中,只有IE 支援JScript.Encoder 以及VBScript.Encoder 類型設置,Firefox Chrome Safari 皆不支持,Opera 中則是該屬性值被修復為預設的Javascript 腳本語言後才有輸出值。 <BR><div class="codetitle"><span><a style="CURSOR: pointer" data="60433" class="copybut" id="copybut60433" onclick="doCopy('code60433')"><U>複製程式碼 程式碼如下:<div class="codebody" id="code60433"> <BR><script language="javascript"> <BR><BR> <BR><script language="javascript"> < a() { <BR>b = "a"; <BR>} <BR>a(); <BR>alert(b); 關於變數有一個問題,即使你在函數內如同上面那樣聲明變量,它就會變成全域變量。 如果用 var 聲明就會有一個問題。 複製程式碼 程式碼如下: <BR><BR> <BR><script language="javascript"> < a() { <BR>var b = "a"; <BR>delete b; <BR>alert(b); } a(); 結果還是會彈出a。 為了確保腳本程式可以正常執行,除非特意使用僅IE 支援的VBScript 和Script Encoder 機制外,應將SCRIPT 標記的"type" 屬性設為"javascript",並且不要設定已經廢棄的"Languange" 屬性。