js_为innerHTML添加的图片添加onerror处理事件

发布时间 2023-10-20 01:04:22作者: Steperouge
  • 在今天的开发中遇到这样的需求:通过接口获取到文章数据, 文章数据是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)