我有很多图片。像这样:
<img src="src1"/>
<img src="src2"/>
<img src="src3"/>有些图像可能并不存在。因此,浏览器将显示一个损坏的图像图片。它很丑陋。如何使用Javascript而不是jQuery来判断图像是否存在?如果不是,给出一个本地镜像来替换它。谢谢。
我试过这个代码,它替换了所有的图像,不仅仅是那些不存在的图像。
function imgError(image) {
image.onerror = "";
image.src = "http://www.hi-pda.com/forum/uc_server/data/avatar/000/85/69/99_avatar_middle.jpg?random=10.20420048222877085";
return true;
}
var imgs = document.getElementsByTagName("img");
for (var i = 0; i < imgs.length; i++) {
imgs[i].onerror=imgError(imgs[i]);
}这些图像是
<img src="rrrrr" />
<img src="http://www.hi-pda.com/forum/uc_server/data/avatar/000/52/56/39_avatar_middle.jpg"/>第一张图片不存在,第二张图片存在。当我在chrome中运行它时,所有的图片都被替换了.
发布于 2015-05-03 17:58:34
我用下面的代码解决了这个问题:
function nofind() {
var img = event.srcElement
img.src="http://www.cnblogs.com/sys/common/image/fileoperation/icon/default.gif";
img.onerror = null;
}
var imgs = document.getElementsByTagName("img");
for (var i = 0; i < imgs.length; i++) {
imgs[i].onError=nofind;
}发布于 2015-05-03 17:41:50
简单的解决方案:
<img src="http://src1/img.jpg" onerror="this.src='http://src1/error-img.jpg';">在img标记中设置
更新
一个停止无限循环的更好的解决方案--谢谢@stom
<img src="foo.jpg" onerror="if (this.src != 'error.jpg') this.src = 'error.jpg';">发布于 2015-05-03 16:58:56
您可以将onerror事件侦听器绑定到DOM中的所有图像。
https://stackoverflow.com/questions/30011955
复制相似问题