IE瀏覽器下圖片載入onload事件失效解決方案

antzone發表於2017-04-06

當圖片載入完畢可以觸發onload事件,這對於火狐或者谷歌瀏覽器來說沒有任何問題,但是對於IE瀏覽器可能會有一些困擾,因為有時候並不能夠觸發事件,下面簡單介紹一下產生這種問題的原因和解決此問題的方法。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var img=new Image();
img.src="antzone.gif";
img.onload=function(){
  //code
}

上面的程式碼中,當圖片載入完畢就會觸發onload事件,執行事件處理函式。

在IE裡面第一次載入頁面沒有任何問題,但是再重新整理頁面的時候,就不會觸發此事件了,這是因為這個時候IE瀏覽器是從快取中讀取的圖片,而不是從伺服器重新載入,需要強調一下這個現象只出現在IE8和IE8以下瀏覽器會出現此問題,下面介紹一下如何解決此問題,程式碼修改如下:

[JavaScript] 純文字檢視 複製程式碼
var img=new Image();
img.onload=function(){
  //code
};
img.src="antzone.gif";

上面的程式碼,只要調整一下時間處理函式和圖片載入路徑的先後順序就可以了。

其實並非onload事件沒有觸發,而是由於直接從快取直接讀取圖片速度很快,導致沒有註冊完事件處理函式的時候,圖片已經載入完畢,事件即便觸發也不會有任何反應。

相關文章