1. 程式人生 > >當原圖片載入失敗時,如何讓圖片載入上我們預設給的圖片

當原圖片載入失敗時,如何讓圖片載入上我們預設給的圖片

我們可能會遇到這樣的問題,當頁面中的圖片的載入失敗時,我們想要該圖片載入我們給的預設的圖片,我在這裡分享一下幾種做法,希望對大家有所幫助。

1、在img標籤中加上 onerror="this.src='error.png ' ";

<img src="Images/1.png " onerror="this.src='error.png ' " >

2、不想在每個img中都定義onerror事件的話,就使用jquery試試
JavaScript code

 $(window).load(function() {
      $('img').each(function() {
        if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
          this.src = './image/logo.gif';
          }
       });
    });

3、但是都要考慮,過載的圖片仍然錯誤,就會陷入死迴圈

下面給出一個帶重試次數,並且延遲載入的實現,超過重試次數仍不能正常顯示的,顯示預設圖片

<html


<head
<title>顯示預設圖片</title>
<scripttype="text/javascript"> 
  
functionshowImgDelay(imgObj,imgSrc,maxErrorNum){  
   showSpan.innerHTML += "--" +maxErrorNum;   //顯示出載入圖片出錯的次數
   if(maxErrorNum>0){  
       imgObj.onerror=function

(){  
           showImgDelay(imgObj,imgSrc,maxErrorNum-1);  
       };  
       setTimeout(function(){  
           imgObj.src=imgSrc;  
       },500);  
   }else{  
       imgObj.onerror=null;  
       imgObj.src="images/default.jpg";  
   }  
}  
 
</script
</head
<body
<img
onerror="showImgDelay(this,'123456.png',2);" src="666.png" width="200" height="200"/> 
<spanid="showSpan"></span
</body
</html>