使用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错误页面,控制台会打印错误信息,也就是错误信息时图片所在服务器给过来的。
解决办法,我也暂时没有找到,看还有木有大神指导
console.clear(
)
preventDeafult
用 rewrite 之类的技术不行吗?
当图片加载或者渲染出现错误时,就会抛出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标签。当然,个人觉得没必要这样做。。。。。
把img里的src改成自定义属性_src,onerror的时候通过getAttribute和setAttribute改回来,就ok了
默认src为空,然后再去判断,设置正确的src