這篇文章主要介紹了IE及IE6瀏覽器中判斷JS文件加載成功失敗的方法,本文使用vbscript來(lái)解決這個(gè)問(wèn)題,需要的朋友可以參考下
瀏覽器的文件加載實(shí)際上是有非常糾結(jié)的兼容問(wèn)題的。最近看到@lifesinger做了一個(gè)具體的總結(jié)。這里比較麻煩的是IE6~8不區(qū)分加載成功或失敗,都走一個(gè)回調(diào)。在網(wǎng)上看了一種解決方案是,在加載文件的最后置一個(gè)全局變量或改變標(biāo)簽的屬性來(lái)區(qū)分,這樣成功與否就通過(guò)這個(gè)標(biāo)志位判斷。但顯然不太完美,還要改加載文件。
后來(lái)嘗試另一種思路,先創(chuàng)建一個(gè)vbscript,src置成一個(gè)JS文件,如這個(gè)文件加載正常,肯定會(huì)報(bào)錯(cuò)否則不會(huì)有反應(yīng)。這樣如果window.onerror捕獲到錯(cuò)誤了,說(shuō)明文件有效,再正常加載。如果沒(méi)捕獲到,n秒后會(huì)觸發(fā)一個(gè)超時(shí)。
這部分代碼:
代碼如下:
if(ie && ie < 9) {
vbs = doc.createElement(\'script\');
vbs.language = \'vbscript\';
vbs.src = file;
saveErrorHandle = win.onerror;
win.onerror = function() {
load();
win.onerror = saveErrorHandle;
return true;
};
setTimeout(function(){
ref.parentNode.insertBefore(vbs, ref);
}, 0);
} else {
load();
}
更多信息請(qǐng)查看IT技術(shù)專欄