img图片不显示时设置默认图片

img标签显示图片:

<img src="url" alt="error txt" />

当图片地址错误时,就是显示error txt,为了更好的用户体验,通常我们可以设置一张默认图片,当图片地址错误时,就显示该默认图片。

img是自闭合标签,所以一般不会去考虑使用伪元素before或after,但是,经过测试,在chrome68.0.3440.75上确实可以使用的,当图片地址正确时,该标签正常显示,before或after不生效,但是当图片错误时,img标签会变成一个双闭合标签,before和after属性生效:

<img src="url"></img>

但是在ie、safari和firefox浏览器中并不支持。

为了兼容,可以使用onerror事件,当图片不存在时,会触发该事件

<img src="url" onerror="this.src=defaultUrl" />

如果使用不当,在IE内核的浏览器下会造成死循环。比如:当默认图片的url地址也加载不成功(比如网速比较慢的时候)或不存在的话,就会反复的加载,最后造成堆栈溢出错误。可以通过设置onerror事件只触发一次来解决。

<img src="url" onerror="this.src=defaultUrl;this.onerror=null" />
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值