2016-03-10 137 views
0

如何检查加载的图像是否已正确加载或损坏? 我不想将“onload”事件添加到图像。检查图像是否在页面上损坏

在进入页面时,我需要确定页面上的任何图像是否已损坏。

谢谢!

+0

更好的去与服务器端实现 – madalinivascu

+0

我同意这是正确的方式去,但因为我测试它,我想处理它的客户端,当这不工作,然后我可以去一个服务器端实现。 – Anu7

回答

1

检查img元素的naturalWidth,它的分解如果naturalWidth为0

var x = document.getElementById("myImg").naturalWidth; 
+0

我认为这是一个很好的解决方案,我可以遍历页面上的所有图像并检查是否存在任何破碎的图像 - 但我有疑问 - 如果在出现图像损坏时将其替换为“图像未加载' 图片 ? 'naturalWidth/naturalHeight'仍然会显示0/undefined?还是会显示替换原始图像的新“图像未加载”图像的宽度? – Anu7

+0

它会显示新的'图像未加载'图像的宽度。 – Jay

+0

只要没有'替换图像',这对我来说绝对好。谢谢你杰伊! – Anu7

0

您可以在Jquery中使用load()函数。例如

$("#Img").load(function() { 
    alert('I loaded!'); 
}); 

http://api.jquery.com/load/

+0

如果他在每个5MB大小的页面上有1000张图像,会发生什么情况? – madalinivascu

+0

和你forgoth的图像的url – madalinivascu

+0

感谢您的答复詹姆斯!将有相当多的图像,我必须动态和快速检查,以验证页面是否有任何损坏的图像。所以我会关心时间消耗和我必须采购这些解决方案的数据。 – Anu7

1

你可以使用jQuery误差函数

$('img').error(function(){ 
     alert("miss " + $(this).attr("src")); 
}); 

内该功能可以做一些动作

+0

谢谢你的回复!我会看看在我的情况下这是否合理。 – Anu7