本文目錄一覽:
IE及IE6瀏覽器中判斷JS文件加載成功失敗的方法
這篇文章主要介紹了IE及IE6瀏覽器中判斷JS文件加載成功失敗的方法,本文使用vbscript來解決這個問題,需要的朋友可以參考下
瀏覽器的文件加載實際上是有非常糾結的兼容問題的。最近看到@lifesinger做了一個具體的總結。這裡比較麻煩的是IE6~8不區分加載成功或失敗,都走一個回調。在網上看了一種解決方案是,在加載文件的最後置一個全局變量或改變標籤的屬性來區分,這樣成功與否就通過這個標誌位判斷。但顯然不太完美,還要改加載文件。
後來嘗試另一種思路,先創建一個vbscript,src置成一個JS文件,如這個文件加載正常,肯定會報錯否則不會有反應。這樣如果window.onerror捕獲到錯誤了,說明文件有效,再正常加載。如果沒捕獲到,n秒後會觸發一個超時。
這部分代碼:
代碼如下:
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();
}
如何判斷調用的外部JS文件加載完成?
script onload事件就可以了,但是ie6不支持啊,ie6是用readystate來判斷是否加載完畢了~!如果瀏覽器支持readystate,那麼就監聽onreadystatechange事件就行了,在onreadystatechange在中判斷readystate是否complete或者loaded就知道script加載完畢了~!
js如何判斷引入的js文件是否加載完畢
js怎麼判斷flash是否加載完畢了呢?
我們怎麼在flash加載完畢之時,回調一個我們設定的js函數?
這個問題,一直困擾了我很久,直到今天,請教了一個非常牛B的人物之後,突然來了感覺!
呵呵,也許,這個問題在你們看來不是問題,不過對於我來說,確實是個問題,因為我一直不知道該怎麼判斷swf文件是否加載完畢了?
從前都是只知道img.onload等等。
好了,言歸正傳,我們到底該怎樣判斷一個flash是否加載完了呢?
沒錯,就是輪詢,然後判斷flash的某個方法是否能正常運行?
示例如下(偽代碼):
01 (function () { 02 var flash = 網頁上某個flash對象。 03 04 var interval = setInterval(function () { 05 try { 06 if(flash.IsPlaying()) { //輪詢flash的某個方法即可 07 callBack callBack.call(flash, args); //回調函數 08 clearInterval(interval); 09 } 10 } catch (ex) { 11 12 } 13 }, 1000); 14 15 var callBack = function () { 16 alert(‘loaded’); 17 } 18 })();
//具體運用時,flash放進setInterval或者setTimeout的函數閉包中時,可能會由於JavaScript單線程問題,導致flash不能調用IsPlaying等flash player函數或者調用結果不對等狀況,這裡有個臨時的解決辦法,我們可以讀取在輪詢函數中讀取flash的TotalFrames屬性,讀取得到,我們就可以認為flash已經完全加載到頁面中了!!!
判斷JS是否加載完畢?
我們可以對加載的 JS 對象使用 onload 來判斷(js.onload),此方法 Firefox2、Firefox3、Safari3.1+、Opera9.6+ 瀏覽器都能很好的支持,但 IE6、IE7 卻不支持。曲線救國 —— IE6、IE7 我們可以使用 js.onreadystatechange 來跟蹤每個狀態變化的情況(一般為 loading 、loaded、interactive、complete),當返回狀態為 loaded 或 complete 時,則表示加載完成,返回回調函數。
原創文章,作者:XSCKG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/330003.html