如果无法加载,我想更改所有图像源。有些公司会阻止对Dropbox的访问,所以我喜欢使用替代的图片链接。另外,我不想修改图像和CSS文件。我的代码适用于第一个图像,但使每个图像源都相同。我该如何解决?提前致谢:
<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>
答案 0 :(得分: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
答案 1 :(得分: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);
}
});
}
});