作者Blog:www.coolcode.cn
IE 5.5 中的 JScript 版本是 5.5 版,它比以前版本的 JScript 中多了如數(shù)組的 push、pop、shift、unshift 方法和 encodeURI、decodeURI 等一些重要的函數(shù)。而這些增加的內(nèi)容在目前其他瀏覽器(如 Moziila/Firefox 和 Opera)上也同樣支持。因此目前開發(fā)網(wǎng)站一般對于 IE 瀏覽器只能兼容到 5.5 版,而對于更低版本的 IE(如 IE 5、IE 4 等),則不再去考慮了。雖然這些低版本的 IE 瀏覽器目前已經(jīng)不是主流,但如果能夠不需要修改現(xiàn)有代碼就能夠兼容它們的話,倒是也可以考慮。因此我做了這個兼容低版本 IE 的 JScript 5.5 實現(xiàn)。當然它不可能完全兼容 JScript 5.5,但對于最常用的一些方法,都已經(jīng)實現(xiàn)了。
該庫使用非常簡單,只需要在網(wǎng)頁的 head 部分加入:
<script type="text/javascript" src="iecompat.js"></script>
就可以了。
完全實現(xiàn)的:
Array 對象中:
·push 方法 ·pop 方法 ·shift 方法 ·unshift 方法 ·splice 方法
Date 對象中:
·toDateString 方法 ·toTimeString 方法 ·toLocaleDateString 方法 ·toLocaleTimeString 方法 ·Function 對象中: ·apply 方法 ·call 方法
Global 對象中:
·undefined 屬性 ·encodeURI 方法 ·encodeURIComponent 方法 ·decodeURI 方法 ·decodeURIComponent 方法
Number 對象中:
·toExponential 方法 ·toFixed 方法 ·toPrecision 方法
對于錯誤處理,IE 5(JScript 5)中已經(jīng)有了 try…catch 和 throw 語句,因此 decodeURI、decodeURIComponent、toExponential、toFixed、toPrecision、apply 如果出現(xiàn)運行期錯誤,在 IE 5 上會拋出跟 IE 5.5+ 中一樣的錯誤信息,但是因為 IE 4 沒有錯誤處理語句,如果上述函數(shù)出現(xiàn)運行期錯誤,將會返回 null。注意上面說的運行期錯誤,不是指上述函數(shù)實現(xiàn)中的錯誤,而是指在這些函數(shù)正常工作的情況下應(yīng)該出現(xiàn)的錯誤。
其中 Function 的 apply 函數(shù)的實現(xiàn)參考了: http://www.openjsan.org/doc/a/ad/adamk/Upgrade/0.04/lib/Upgrade/Function/apply.html 這段程序。
不完全實現(xiàn)的:
Error 對象
Object 對象中:
·isPrototypeOf 方法 ·hasOwnProperty 方法 ·propertyIsEnumerable 方法
String 對象中:
·toLocaleLowerCase 方法 ·toLocaleUpperCase 方法 ·localeCompare 方法
因為 IE 4 不具備錯誤處理語句,因此 Error 對象在 IE 4 上并不具備 IE 5 以上 Error 對象應(yīng)具有的功能,因此它對于 IE 4 的實現(xiàn)只能保證你在訪問或創(chuàng)建它時不會出錯。
Object 中的 isPrototypeOf、hasOwnProperty 和 propertyIsEnumerable 方法只是做了模擬實現(xiàn),其返回值并非總是正確。
String 對象中的 toLocaleLowerCase、toLocaleUpperCase 和 localeCompare 方法實際上并沒有考慮本地字符集,但在大部分系統(tǒng)上它還是工作正常的。
完全沒有實現(xiàn)的:
正則表達式對象中擴充的屬性和限定符
下載: iecompat.js
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝] 如果你想測試低版本的 IE 瀏覽器上的效果,又沒有安裝低版本的 IE 瀏覽器,可以使用這個包:ie_all.zip 。這里面都是不需要安裝的 IE,直接釋放壓縮包到一個目錄下,就可以運行了。如果你是 win9x 系統(tǒng),可以到 這里 下載 win9x 版的 standalone IE。
出處:藍色理想
責任編輯:moby
◎進入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|