js_为innerHTML添加的图片添加onerror处理事件
-
在今天的开发中遇到这样的需求:通过接口获取到文章数据, 文章数据是html字符串, 使用innerHTML将其注入到某一个元素中, 文章中的某些图片因为服务器端的图片失效等原因无法访问,需要为其添加一个onerror处理事件, 替换调损坏的图片, 替换为一个显示加载失败的图
-
function handleErr(dom){ if(dom.src!=='errImgSrc'){ dom.src=errImgSrc }else{ dom.onerror=null // 这个非常重要,必须考虑被替换的图片也加载失败的情况 } } let reg = /(<\simg\s)/g let str1 = '< img src="https://inews.gtimg.com/news_bt/OLxEQ7cVaXS1OUlA/641" alt="图片" data-href="" style="width: 680px;height: 381.547px;"/>' let replaceFn = '$1 onerror="handleErr(this)" ' str1 = str1.replace(reg, replaceFn) console.log(str1)