解決IE中img.onload失效的方法


原來

$("#QrCode").on("load",function(){
    $(".loading").hide();
    alert(1);
})
//或者
document.getElementById("QrCode").onload = function(){
    $(".loading").hide();
    alert(1);
}

看起來沒什么問題,但是為什么onload在ie下經常沒有被調用呢?因為瀏覽器會緩存圖片,第二次加載的圖片不是從服務器傳過來的,不會發起請求,但是圖片的complete屬性會被加上。alert(1);每次都會執行,所以猜測是錯誤的。

修改代碼如下

var img = new Image();
img.onload = function(){

  document.getElementById("QrCode").setAttribute("src",this.src)
    $("#loading").hide();
}
img.src = "/img/img.jpg";

  

onload事件寫到給imgage對象的src賦值之前了,先告訴瀏覽器如何處理這張圖片,再指定這張圖片的源,這樣就正常了。

所以,不是IE瀏覽 器沒有觸發onload事件,而是因為加載緩沖區的速度太快了,以至於沒有運行到obj.onload的時候,onload事件已經觸發了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM