讨论【IE兼容】img标签onerror事件兼容问题

young
9阅读0评论9 个月前
  • 问题显性

img标签src赋值后,考虑优化图片资源不加载时赋值默认图,因此用了onerror事件,在onerror事件里给src赋值默认图。 结果在各大主流浏览器上均正常显示图片,但在IE11上显示默认图!!! 去掉 onerror事件后图片正常显示 说明图片资源没问题,但是在IE上就会进入onerror方法,这个可能就是IE的渲染机制跟其他浏览器的渲染机制存在区别和差异,具体在哪里,无从得知,哪位前辈大佬有研究的可以解惑下,万分感谢。

  • 临时解决方案

慎用onerror方法,在onerror事件中加一层判断覆盖,判断图片资源是否正常,若资源正常则什么都不做,若资源不正常则赋值默认图。

  • 贴代码

<img src="fly.jpg" onerror="imgExists(this)" alt="fly">

<script>
function imgExists(this){
var url = this.src;
var img = new Image();
img.src=url;
//判断图片大小是否大于0 或者 图片高度与宽度都大于0
if(img.filesize>0||(img.width>0&&img.height>0)){
console.info("every things is ok");
}else{
this.src = "default.jpg";

console.ino("process bad");
}
}
</script>

加载中…
精选评论
暂无数据

暂无数据