如何判断是否存在动态加载的图像

我正在动态地将来自不同网站的图像加载到asp.net ListView控件中,如下所示:
<ListView>
   <ItemTemplate>
      <img src='<%# string.Format("http://www.Website.com/Images/{0}", Eval("ImageName")) %>' />
有时,图像不存在,我需要将src更改为静态路径:src =“/ whatever / default.png”。我检查图像是否存在的最快方法是什么,如果不存在则更新src(通过jQuery可以实现任何客户端可能性)? ListView是分页的,可以包含数千条记录的结果集,因此我只想检查当前页面上的图像以优化性能。谢谢!     
已邀请:
使用jquery你可以这样做:
<img src="http://myimages.com/image.jpg" id="imgId" />

$('#imgId').load(function(){
 // ... loaded  
}).error(function(){
 // ... not loaded
 $(this).attr('src','/whatever/default.png');
});
    
我只是尝试加载图像,如果出现错误,则回退到默认值:
$('img').error(function()
{
  $(this).attr('src', '/whatever/default.png');
});
编辑:此解决方案可能无法正常工作,因此我将为您提供备用解决方案。当图像没有加载时,理论上它的
width
0
(假设你没有设置
<img>
标签的样式)。此代码可能有效:
$('img').each(function()
{
  if ($(this).width() == '0px')
  {
    $(this).attr('src', '/whatever/default.png');
  }
});
    

要回复问题请先登录注册