javascript - Img src地址不存在时 onerror替换默认图片 怎样去掉控制台的404错误信息(有意思的一个过程)
巴扎黑
巴扎黑 2017-04-10 18:07:48
[JavaScript讨论组]

使用Img标签的时候,src图片地址不存在时,使用onerror替换为一张默认图片,但控制台会打印原来的图片地址找不到的错误。如图:

怎么去掉这个。强迫症。

11.24补充问题说明:

原先这个问题可能存在一定误导性,重新编辑说明一下。
正常情况下,当我们访问一个图片的地址(如https://www.baidu.com/img/bd_...),会取得这个图片,但当这个图片地址如果错误时(如https://www.baidu.com/img/bd_...),页面会提示你访问的地址不存在,查看XHR,会发现是返回的一个302错误,控制不会打印错误信息,此时解决页面上破图问题就可以通过,添加onerror替换默认图片js添加image对象,onerror事件替换src等方法解决。
但是...
我请求的地址(内部地址,暂不能给出),会返回一个404错误,到404错误页面,控制台会打印错误信息,也就是错误信息时图片所在服务器给过来的。
解决办法,我也暂时没有找到,看还有木有大神指导

巴扎黑
巴扎黑

全部回复(6)
巴扎黑

默认src为空,然后再去判断,设置正确的src

高洛峰

把img里的src改成自定义属性_src,onerror的时候通过getAttribute和setAttribute改回来,就ok了

高洛峰

当图片加载或者渲染出现错误时,就会抛出onerror事件。
准确来说,在以下情况,

1.src属性为空或者null
2.src的地址与当前页面的地址一致
3.在加载过程中因为某些原因崩溃
4.图片的元数据已损坏,无法知道尺寸,并且<img>标签也没定义尺寸
5.当前的user agent不支持该图片格式

这时浏览器会抛出error事件,404的错误就是这时候打印的。然后才会回调
onerror来处理error事件。

所以说你想在onerror函数中阻止打印是不可能的,除非你可以拦截浏览器抛出error事件。

而据目前我查的资料来看,并没有发现这样的API(如果有发现的话,告知下我~)

所以要解决题的问题,只能用些不正常的方法

先不添加img标签,先自己请求一次图片,如果是error则append默认图片的img标签,如果是成功的话就append所该img标签。当然,个人觉得没必要这样做。。。。。

PHP中文网

用 rewrite 之类的技术不行吗?

ringa_lee

preventDeafult

迷茫

console.clear(
)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号