img标签的onerror事件

时间:2023-01-29 23:18:31

#情景分析:

  有时,img标签中的src图片加载失败,原来的图片位置会出现一个碎片图标,这样让人很不爽,如何变得美观些呢?

#解决方案:

  可以借用img标签的onerror事件,img标签支持onerror 事件,在装载文档或图像的过程中如果发生了错误,就会触发onerror事件。可以使用一张提示错误的图片代替显示不了的图片。代码如下: 

 

<img src="images/logo.png" onerror="javascript:this.src='images/logoError.png';">

 

  当图片images/logo.png不存在时,将触发 onerror事件,而 onerror 中又为该 img 指定了images/logoError.png图片。也就是说图片images/logo.png存在则显示logo.png,图片images/logo.png不存在将显示 logoError.png。

  *问题:如果images/logoError.png 也不存在,则会继续触发 onerror事件,导致死循环,故会出现打开网页时提示 Stack overflow at line: 0 错误。特别说明:如果图片存在,但网络很不通畅,也可能触发 onerror事件

  *解决方法:控制它不循环,代码如下:

 

1 <script type="text/javascript"> 
2     function imgerrorfun(){ 
3         var img=event.srcElement; 
4         img.src="images/logoError.png"; 
5         img.onerror=null; 控制不要一直跳动 
6     } 
7 </script> 
8 
9 <img src="images/logo.png" onerror="imgerrorfun();" />

 

 

 

 

 

***————————————————————————————————————————***