2012-01-27 77 views
4

我想更改所有圖像源,如果它們加載失敗。一些公司阻止對Dropbox的訪問,所以我喜歡使用圖像的替代鏈接。另外,我不想修改圖像和css文件。我的代碼對第一個圖像有效,但是使每個圖像源都相同。我該如何解決它?在此先感謝:更改所有圖像源jquery

<html> 
<head> 
<script src="jquery.js" type="text/javascript"></script> 

</head> 
<body> 

<img src="img/a.png" alt="img1"/> 
<img src="img/b.png" alt="img2"/> 

</body> 

<script> 

var image = new Image(); 
image.src = "http://dropbox.com/favicon.ico"; 
if (image.height < 0) { 

var imgsrc = $('img').attr('src'); 

var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); 
imgsrc1 = imgsrc.substr(4); 
var imgalt = imgsrc1.substr(4,imgsrc.length - 4); 

var imgsrc2 ='t/' + imgsrc1; 
$('img').attr('src',imgsrc2); 
$('img').attr('alt',imgalt);  

    } else { 


var imgsrc = $('img').attr('src'); 

var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); 
imgsrc1 = imgsrc.substr(4); 
var imgalt = imgsrc1.substr(4,imgsrc.length - 4); 

var imgsrc2 ='http://dl.dropbox.com/u/xxxxxx/img/' + imgsrc1; 
$('img').attr('src',imgsrc2); 
$('img').attr('alt',imgalt);  

    } 
</script> 
</html> 

回答

7

你要做的所有圖像相同的過程,我覺得你的代碼只適用於第一個。具體行var imgsrc = $('img').attr('src');

嘗試這樣的else子句裏:

$('img').each(function() { 
    var $img = $(this); 
    var imgsrc = $img.attr('src'); 

    var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); 
    imgsrc1  = imgsrc.substr(4); 
    var imgalt = imgsrc1.substr(4,imgsrc.length - 4); 

    var imgsrc2 ='http://dl.dropbox.com/u/xxxxxx/img/' + imgsrc1; 
    $img.attr('src',imgsrc2); 
    $img.attr('alt',imgalt); 
} 

它也可以是值得注意的是Dropbox的具有傳輸限制的,至少,每天帶寬(不知道是否有一個最大命中每天數雖然):https://www.dropbox.com/help/45

+0

克里斯托弗,我想每個之前,但隨後整個代碼停止工作。儘管感謝您的幫助。 – john206 2012-01-28 02:57:16

0

試試這個:

$(document).ready(function(){ 
    $('img').each(function(){ 

     var imgsrc = $(this).attr('src'); 

     $(this).load(function(){ 
      if($(this).prop('complete')){ 

       var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); 
       imgsrc1 = imgsrc.substr(4); 
       var imgalt = imgsrc1.substr(4,imgsrc.length - 4); 

       var imgsrc2 ='t/' + imgsrc1; 
       $('img').attr('src',imgsrc2); 
       $('img').attr('alt',imgalt); 

      }else{ 

       var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); 
       imgsrc1 = imgsrc.substr(4); 
       var imgalt = imgsrc1.substr(4,imgsrc.length - 4); 

       var imgsrc2 ='http://dl.dropbox.com/u/xxxxxx/img/' + imgsrc1; 
       $('img').attr('src',imgsrc2); 
       $('img').attr('alt',imgalt); 

      } 
     }); 
    } 
}); 
+0

薩加爾,我用你的代碼,它出現所有的圖像成爲第二個圖像和頁面不停止加載。感謝您的嘗試。 – john206 2012-01-28 02:59:05