目前在做信息流列表的时候,需要点击不同的图片跳转不同的地址,

主要就是图片404的捕捉和替换备用图片

1.目前在用的,使用的是全集的错误捕捉

const basesrc = 'http://static.51gzdhh.xyz/2020-05-15/2/23da5ac3420d1f4b87790d0b91c690d1.jpg'  window.addEventListener('error', function(e) {if (e.target.tagName === 'IMG' && e.target.src.indexOf('51gzdhh.xyz') !== -1 && e.target.className === 'clickimg' && e.target.src !== basesrc) {console.log(e);console.log(e.target.src);e.target.src = basesrce.target.dataset.src = basesrc// e.error = null}}, true);

单独替换src的话,页面的图片会多次捕捉的错误,会闪烁,替换了下面的datatset的就解决了页面闪烁的问题,因为我使用了懒加载

2.直接再标签上添加onerror事件,

<img src="someimage.png" οnerrοr="imgerror(this);" />function imgError(image){$(image).hide();// $(this).attr("src", "images/demo.png");
}
//需要将处理函数定义在head,防止图片加载出错时没有读取到处理函数

如果使用的是模板字符串的方式添加进去的img,这个this指向的就是window,没法选择到当前标签,所以没法替换src,没有使用,但是应该原生的方法是可以的。

我是用的模板字符串,具体的监听代码如下

`<img src="" type="${type}" onerror=${imgError()} myindex='2' class='clickimg' data-src="${item.imgList[2]}" alt="">`function imgError() {var img = event.srcElement;console.log(img)console.log(img.src)img['data-src'] = "http://static.51gzdhh.xyz/2020-05-15/2/23da5ac3420d1f4b87790d0b91c690d1.jpg"; /*默认图片相对路径*/img.src = "http://static.51gzdhh.xyz/2020-05-15/2/23da5ac3420d1f4b87790d0b91c690d1.jpg"; /*默认图片相对路径*/console.log(img.src)img.οnerrοr = null; /*控制不要一直跳动*/// document.getElementById(e).setAttribute("src", "http://static.51gzdhh.xyz/2020-08-07/c/c9bd3f6444deccd4efde0720a960e10c.jpg?x-oss-process=image/resize,w_240,h_200")
}

这个也是可以解决的,但是需要在每个标签上都加上onerror方法,比较繁琐,所以推荐使用第一种,全局的方法。

3.使用jq

$('#test img').error(function() {$(this).hide();// $(this).attr("src", "images/demo.png");
});

但是这种方式,对于模板字符串也是监听不到的

前端解决图片404的问题相关推荐

  1. 前端展示图片404后使用onerror替换图片或其他变化

    有时候从后台抓来的json中没有图片对应的路径或者没有对应的图片 报错XXXX.jpg 404 这时候用onerror事件来对报错的img进行修改 <img id="" sr ...

  2. 前端解决图片跨域问题:net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin

    前言 项目中使用了从别的网站上面获取的图片url,在项目中展示报错 net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin 200 从network中可以看到有请求报CO ...

  3. 前端解决图片在浏览器中旋转问题

    在开始之前需要了解为什么在浏览器中图片会自动旋转,在一些相机设备中因手持方向的原因导致图片会有一个旋转角度,在浏览器中旋转角度被忽略了,导致图片看过去是旋转的 图片旋转如下 如图 1 正常 6 旋转9 ...

  4. vue代码上传服务器后背景图片404解决方法

    vue代码上传服务器后背景图片404解决方法 参考文章: (1)vue代码上传服务器后背景图片404解决方法 (2)https://www.cnblogs.com/Mrrabbit/p/7830944 ...

  5. 前端解决:此图片来自微信公众平台未经允许不可引用

    前端解决:此图片来自微信公众平台未经允许不可引用 方法一: <meta name="referrer" content="no-referrer" /&g ...

  6. vite+vue3打包后图片404问题:已解决

    let content = [{title:"每周菜单",cont:[{url:"/procurementchildren/meke_menu",name:&q ...

  7. 前端如何解决图片太多加载资源慢的问题

    前端如何解决图片太多加载资源慢的问题 使用图片服务器 使用图片懒加载 CSS sprites 使用图片服务器 把图片服务器与应用服务器分开,图片服务器采用独立域名 ,css.js和图片就可以并发请求了 ...

  8. object-fit 解决图片指定大小被压缩问题

    object-fit 解决图片指定大小被压缩问题 第一次遇到这个属性,是在给video 写 poster的时候,选取的作为poster的img的尺寸有点小,导致video播放器两边有留白.在控制台查看 ...

  9. html图片左侧留白,HTML+CSS入门 如何解决图片跨域导致的截图空白

    本篇教程介绍了HTML+CSS入门 如何解决图片跨域导致的截图空白,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 1. 后端支持:图片要是cdn上的地址,并且允许图片跨域 ...

最新文章

  1. c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate
  2. 扇贝编程python是干嘛的-产品观察 | 以对话式互动学习撬动转化,扇贝编程瞄准职教市场...
  3. 关于 Notepad++ 崩溃之后正在编辑文件内容被清空的致命问题的补救措施
  4. UI第九节——UIProgressView
  5. SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)
  6. jeecg 输入框属性 自定义ajax 验证字段值是否存在
  7. 「镁客早报」小米“10亿赌约”输给格力;SpaceX本周将首次试飞新飞船...
  8. linux vim命令的意思,Linux 中 vim 是什么意思?
  9. 最好的python视频教程_比较好的python视频教程
  10. 什么样的会员管理才叫有效果的会员运营方案?
  11. Linux开发-数据流与管道
  12. .com域名好抢注吗?抢注.com域名有哪些技巧?
  13. 【毕业设计】指纹识别系统设计与实现 - 单片机 嵌入式 物联网
  14. Excel的使用-查看公式引用的单元格【跬步】
  15. y7000p装win10 工作站专业版,第三方驱动导致触摸板 失灵
  16. 曾鸣:互联网的本质是什么?| 内部干货
  17. 【WebRTC】回声抵消(aec、aecm)算法简介
  18. 范德堡计算机科学硕士,范德堡大学计算机科学硕士排名第58(2020年TFE Times排名)...
  19. 地牢猎手5服务器不稳定,地牢猎手5一些新人容易遇见的问题以及解答
  20. 安纳西(武汉)全铝智能家居 实力厂家 高端品牌

热门文章

  1. PDF文档免费转成Word文档,不限页数。
  2. 文件分片上传阿里云OSS
  3. Python爬虫-漫画柜漫画爬取
  4. TCL/TK 学习笔记 之 用C定义自己的TCL命令
  5. vue-i18n 用法
  6. SSM酒店预订客房管理系统(包含数据库及项目说明)
  7. java防止文件上传_文件上传漏洞:getshell的最好方式,我们如何防御?
  8. 【coppeliasim】高效传送带
  9. 日期计算(计算某一年的x天是几月几日)
  10. java opencv 添加图片水印