vue中img标签onerror事件
vue中img标签onerror事件
使用:onerror去绑定事件
该方法能正确处理onerror事件,并防止闪图
<img type="image/x-icon" :src="item.icon?item.icon:''" :onerror="imgOnError" />
//图片损毁时触发
imgOnError(e){
let img = e.srcElement;
img.src = this.errorImg;
img.onerror = null; //防止闪图
},
使用@error会导致回闪
使用@error会导致回闪,图片回闪问题
<img type="image/x-icon" :src="item.icon?item.icon:''" @error="imgOnError($event)" />
//图片损毁时触发
imgOnError(e){
console.log("闪图")
let img = e.srcElement;
img.src = this.errorImg; //data中的图片
img.onerror = null; //防止闪图,写了但是图片还是会回闪
},
这种图片不回闪,但是还是回疯狂回调onerror事件,并且会发现元素的onerror事件那里还注册这函数,并没有清除掉。
<img type="image/x-icon" :src="item.icon?item.icon:''" @error="imgOnError()" />
//图片损毁时触发
imgOnError(){
console.log("触发事件")
let img = event.srcElement; //已经弃用
img.src = this.errorImg; //data中的图片
img.onerror = null; //防止闪图,写了但是还是会疯狂回调onerror的注册事件
},
关于没图片时onerror事件不触发问题
vue在item.icon为null或者undefined时,并不会对这个src进行赋值,没有src属性貌似是无法触发onerror事件的。
<img type="image/x-icon" :src="item.icon" :onerror="imgOnError" />
<!--vue处理出来结果,没src无法触发onerror事件-->
<img type="image/x-icon" />
<img type="image/x-icon" :src="item.icon?item.icon:''" :onerror="imgOnError" />
<!--vue处理出来结果,有src并且解析不出图片,触发onerror事件-->
<img type="image/x-icon" :src=""/>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)