检查是否可以加载图像


Check if image can be loaded

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

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

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

非常感谢,提前!

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

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

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

<img src="image.gif" onerror="alert('Could not load image.')">
如果你想在

元素已经在 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 attribute更改为cantload.png

jsFiddle 演示