0

我有一个页面上有很多图像。我的图像是从外部服务器加载的。通常这台服务器的加载速度太慢了,所以我的页面一直在加载,直到外部服务器再次开始运行。当外部服务器关闭时,我想从我的加载一个空白图像。

有什么方法可以做这样的事情吗?

if ($("img").load=false) {
 $("img").src="cantload.png";
}

非常感谢,提前!

4

2 回答 2

2

如果您使用的是 jquery,并且这段代码发生在图像绑定之前。

$("img").error(function() {
    alert("Could not load image");
});

如果没有,那么您可以执行以下操作,这将始终有效,但需要在每个图像上:

<img src="image.gif" onerror="alert('Could not load image.')">
于 2013-09-22T11:46:08.440 回答
1

如果你想在元素已经在 DOM 中之后激活这个功能,你可以使用类似这样的东西。

var defaultSource = 'cantload.png';

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

    $(this)
        .attr('src', defaultSource)
        .error(function(){
            $(this).attr('src', defaultSource );
        })
        .attr('src', originalSource);
});

上面的代码会绑定内部函数来处理图片的加载错误,然后让它们全部重新加载。已经重新加载的图片实际上不会再次重新加载,但有错误的图片将触发错误处理程序并更改source attributecantload.png

jsFiddle 演示

于 2013-09-22T11:47:19.120 回答