网页图片加载失败处理方法

问题描述

网页中有时候可能会出现图片资源载入失败的问题,比如 Safari 错误图片载入的样子 , 会显示问号 ,如下图 。

image

这种问题可能还会影响我们后面写的一些样式, 那这种问题怎么处理呢 ?

其实解决这种问题很简单

JavaScript提供了一个 onerror 事件 ,在装载文档或图像的过程中如果发生了错误,就会调用该事件,
它支持的HTML标签有 img object style

我们只需要替换错误的图片就好了,不让浏览器使用默认值 ,代码如下

<img src="xxx" onerror="javascript:this.src='bg.png';" alt="pic" />

衍生问题

当图片加载失败时, 默认图片也加载失败了, 那怎么办呢?

思路是当图片加载失败时,进入 onerror , 判断onerror 的图片是否能加载, 在onerror 中的图片再次触发onerror的时候,设置onerror为null(null表示不存在该对象)

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<script>
function errorIMG(){
//获取img对象,火狐是event.target ,IE及谷歌其他是event.srcElement
var img=event.srcElement || event.target ;
//设置默认图片
img.src = 'bg.png'
img.onerror=null;
}
</script>

<body>

<img src="xxx" onerror="errorIMG()">

</body>

</html>

(完)

分享到