找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 695|回复: 0

[HTML] img图片不存在时设置默认图片

[复制链接]
admin 发表于 2020-7-9 14:15:44 | 显示全部楼层 |阅读模式

登录后,购买下载资源更方便!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
例如,有以下代码:- |* ^/ l9 A5 J! t8 h. Y: g/ n
[html] view plain copy
- @$ C6 I. D  U, \3 D<img src="图片的url地址" alt="图片XX"/>  # r1 T# G# I( Z. j9 r/ r0 r
当在页面显示的时候,万一图片被移动了位置或者丢失的话,将会在页面显示一个带X的图片,很是影响用户的体验。即使使用alt属性给出了"图片XX"的提示信息,也起不了多大作用。 其实,可以这样处理:当图片不存在的时候,会触发onerror事件,我们可以在该事件中做一下补救的工作,比如:
+ @: [- r$ C4 o1、让这个图片元素隐藏:
# s5 f( m5 I+ j4 h" U[html] view plain copy
( C8 o5 w) W: {1 X% i% m; N* v4 p<img src="图片的url地址" alt="图片XX"/>  
& K9 a2 [) `9 B. Y& C0 D8 M/ @+ t1 {  t* u$ v( u0 s/ \
2、用默认的图片替换:
3 Y6 @$ l8 O8 l( ~[html] view plain copy
5 @3 v3 m3 }- D5 R; J4 t8 G& [<img src="图片的url地址" alt="图片XX"/>  
/ k. F6 W3 s( E' `6 I1 l$ D注意:如果使用不当,在IE内核的浏览器下会造成死循环。比如:当【默认图片的url地址】也加载不成功(比如网速比较慢的时候)或不存在的话,就会反复的加载,最后造成堆栈溢出错误。 因此, 需要用下面两种方法解决: a、更改 onerror 代码为其它处理方式或者确保 onerror 中的默认图片足够小,并且存在。 b、控制onerror事件只触发一次,需要增加这句话:this.οnerrοr=null; 增加后如下:
4 }! j4 O8 ]( c3 g; i( Y9 G[html] view plain copy
' b# t* F6 I* s6 u" y<img src="图片的url地址" alt="图片XX"/>  
. }4 d! G3 z0 I: q" e
  G3 v  Z) v" K6 `% g2 w  u, h5 W经测试,上面的方法在IE各个版本及谷歌、火狐浏览器中都支持。
2 o6 K. r4 D% Y- m$ N以上方法适合<img>较少的情况,如果要处理的<img>比较多的话,可以做一个全局性的设置:; B1 @& u* V+ F3 g% W
可以写一个js脚本,让其遍历页面所有的<img>标签,给每个标签添加error事件,当任何地方的图片不存在时都可以进行统一的处理。
1 U5 l- h8 B3 a7 x; d. [8 K0 n

QQ|手机版|源码模版|全球支付|VISA信用卡|MASTER信用卡|科恒数字网

GMT+8, 2024-4-19 14:58 , Processed in 0.049651 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表