img标签的onerror事件

作者: 抽疯的稻草绳 | 来源:发表于2021-02-03 21:29 被阅读0次

#情景分析:

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

#解决方案:

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

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

 <img :src="itemData.headImg" v-if="itemData.headImg" onerror="this.src='static/img/avatar.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事件

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

<script type="text/javascript">
    function imgerrorfun(){
        var img=event.srcElement;
        img.src="images/logoError.png";
        img.onerror=null; 控制不要一直跳动
    }
</script>

<img src="images/logo.png" onerror="imgerrorfun();" />

相关文章

网友评论

    本文标题:img标签的onerror事件

    本文链接:https://www.haomeiwen.com/subject/jczqtltx.html