当页面图片不存在时的处理方法

2 篇文章 0 订阅
2 篇文章 0 订阅

 

在页面显示的时候,万一图片被移动了位置或者丢失的话,将会在页面显示一个带X的图片,很是影响用户的体验,非常的不规范,同时页面上也会抛出异常。
其实,可以这样处理:当图片不存在的时候,会触发onerror事件,我们可以在该事件中做一下补救的工作,比如:

 

1、让这个图片元素隐藏:

 

<img src="图片1的url地址" alt="图片1" onerror="this.style.display='none'"/>

 

2、用项目上默认的图片替换:

 

<img src="图片1的url地址" alt="图片1" onerror="this.src='默认图片的url地址'"/>

 

 

注意:如果使用不当,在IE内核的浏览器下会造成死循环。比如:当【默认图片的url地址】也加载不成功(比如网速比较慢的时候)或不存在的话,就会反复的加载,最后造成堆栈溢出错误。
因此, 需要用下面两种方法解决:
a、更改 onerror 代码为其它处理方式或者确保 onerror 中的 默认图片 足够小,并且存在。
b、控制onerror事件 只触发一次 ,需要增加这句话:this.οnerrοr=null; 增加后如下:  
<img src="图片1的url地址" alt="图片1" onerror="this.src='默认图片的url地址;this.onerror=null'"/>
以上方法适合<img>标签较少的情况,如果要处理的<img>标签比较多的话,可以做一个全局性的设置:
可以写一个js方法,给每个 标签添加error事件,当任何地方的图片不存在时都可以进行统一的处理。

 

一个从装环境开始的学习记录公众号,欢迎大家关注:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值