图片加载失败如何替换成默认图片

img元素加载图片失败,则变成一个小图标,让页面变得难看。此时如何替换为默认图片?

如果img标签是少量的话,可以使用这个:

img的onerror事件

<img src='1.jpg' alt='test' οnerrοr="this.src='default.jpg'">

//alt属性的意思是在图片为加载成功时显示的文字

onerror属性

img元素自带onerror属性,加载失败时,触发error事件

         <img src="image.gif" οnerrοr='this.src="default.gif" />

这样依然会有一个小问题,当default.gif加载也失败的时候就进入了死循环,解决办法是

当图片加载失败,进入onerror的时候,判断onerror的图片是不是能加载,在onerror中的图片触发onerror的时候,设置onerrornull

当然还可以使用这种方式


var imgs = document.images; // images 集合可返回对文档中所有 Image 对象的引用。
for(var i = 0;i < imgs.length;i++){
   imgs[i].onerror = function(){
   this.src = "[!--news.url--]skin/default/images/notimg.gif";
}
}

关于document.images;如下:

属于document的内容

 

jquery.error的函数

jquery提供对应的事件处理函数

         $('img').error(function(){

    $(this).attr('src',"default.gif");

})

类似于原生js选择页面中所有的img标签,利用的原生error事件,如下:

Var imgs=document.getElementsBytargName(‘img’);

for(var i=0;i<imgs.length;i++){

imgs[i].οnerrοr=function(){

 this. setAttribute(‘src’,’ default.gif’);

 //this.src=’default.gif’;

}

}

jquery.one函数

使用上面两种方法,假如默认图片也加载失败,也会变成死循环. 此时可使用one()绑定事件

         $("img").one("error", function(e){

     $(this).attr("src", "default.gif");

});

注意error事件,不支持冒泡,jquery.delegate/ jquery.on事件委托函数捕捉不到error事件。

 

转载于:https://www.cnblogs.com/itpi/p/5847717.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值