首頁  >  文章  >  web前端  >  IE瀏覽器中圖片onload事件無效的解決方法_javascript技巧

IE瀏覽器中圖片onload事件無效的解決方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:50:481005瀏覽

故事模式實現是只加載當前瀏覽的照片和它下面的兩張照片,加載照片的時候才會加載和渲染評論區,圖片沒有加載前會用一個一像素的圖片佔位,並用一個loading類別將顯示出一個loading背景圖,判斷在視覺區的時候被替換成真正的圖片,圖片載入成功後刪除loading類別。

問題出在最後面,測試的時候發現在IE下loading類別無法刪除,當時程式碼如下:

複製程式碼 程式碼如下:

img.src = _src;
img.src = _src;
img.onload = function(){
   _con.delClass('loading') ;
}

網上找了一番,onload和定義src的語句應該換一下順序,IE從緩存中取圖片,onload根本不觸發,opera也有這個毛病,正確代碼修改如下
複製程式碼 程式碼如下:

img.onload = function(>

img.onload = function(){<_ delclass>};
img.src = _src;
立即就正常了


結論:應該把onload寫到src前面,先告訴瀏覽器圖片載入完要怎麼處理,再讓它去載入圖片。 所以,不是IE瀏覽器不會觸發onload事件,而是因為載入緩衝區的速度太快,在沒有告訴它載入完該怎麼辦時,它已經載入完了。反過來說,firefox明顯更聰明一些,加入onload事件後,firefox瀏覽器會偵測緩衝區是否已經有此圖片,有的話直接就觸發此事件!
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn