1.对于img标签可以用onerror来重新加载原来错误的图片,举例:
<img src="http://www.hadsky.com/这是个错误的地址或图片资源" onerror="this.src='http://www.hadsky.com/ad/install/ad.png'">
img加载src内的图片出错时,就会自动执行onerror内的js代码,你就可以用this.src来重新加载图片。
2.通用型的判断或检测图片是否加载成功方法,用检测函数,代码如下:
//检测图片是否加载成功
function chkimgisok($src) {
var img = new Image();
img.src = $src;
if (img.width == 0) {
//加载失败
return false;
} else {
//加载成功
return true;
}
}
该函数的使用和调用方法:
if (chkimgisok('图片地址')) {
//图片加载成功
}else{
//图片加载失败
}
举例:判断或检测某个对象背景图片是否加载成功:
//下面是摘抄HadSky轻论坛puyuetian_whitestyle模板判断用户头像是否加载成功的代码。
<h1 id="article-title" class="am-article-title" style="background-image: url(userheadimg/{$LZU_id}.png);background-size: 28px 28px;background-repeat: no-repeat;background-position: 0px 3px;padding-left: 35px;">
{$LZC_title}
</h1>
<script>
$(document).ready(function() {
if (!chkimgisok('userheadimg/{$LZU_id}.png')) {
$('#article-title').css('background-image', 'url(userheadimg/2.png)');
}
});
</script>
举例分析:
由于部分用户没有上传头像,所以直接加载其uid所对应的头像图片可能导致不存在该头像文件而显示空白,为了解决该问题引入js检测代码,当文档加载完成时判断该用户的头像是否加载成功,若没有加载成功则为其加载默认的游客头像。