杰者的备忘录

当前位置:   网站首页 >> 杂烩

异步判断img是否加载错误

需要爬别人网站的图片,对方的图片不太稳定,偶尔有加载不出来的问题发生。

由于爬虫执行顺序的原因,我也没办法给他的img加onerror进行监听,所以需要异步判断img是否加载错误。

本来以为很简单的一个需求,找了一下网上的资料,发现大部分都是各种对我没用的信息,什么用onload、onreadystatechange,还有说用complete就可以的。。。首先,如果我能加onload的话,干脆加onerror多省事。complete就更离谱了,图片即使加载失败,complete也是返回true的,严重怀疑文章作者写作之前有没有测试过。


搜索了大半天没什么收获,最后自己测试出来了,图片加载错误的时候naturalWidth和naturalHeight两个属性会返回0,所以拿来判断是否加载错误就很方便了。先用complete属性判断img是否就绪了,然后再判断naturalWidth和naturalHeight两个属性是否为0就可以了。


var imgobj=document.getElementById("Img");
if (imgobj.complete){
if(imgobj.naturalWidth==0 && imgobj.naturalHeight==0){
//图片错误时候的处理
}
}



发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项