微信小程序图片404时显示默认图片

 由于在项目中多个页面都要用到这个代码,所以我们在utils文件夹中新建一个errorImage.js,便于在其他页面引用

errorImage.js:

//远程图片no found情况下指引  
function errImgFun(ev, that){  
  var _errImg=ev.target.dataset.errImg;  
  var _errObj={};  
  _errObj[_errImg]="默认图片";   
  that.setData(_errObj);
}  
module.exports = {  
  errImgFun: errImgFun  
}

 

在需要的js中引入这个文件

js:

// 处理图片加载404问题
var errorImage = require("../../utils/errorImage.js");
Page({
  onLoad: function (options) {

  },
  // 远程图片加载404显示默认图
  onImageError: function (ev) {
    var _that = this;
    errorImage.errImgFun(ev, _that);
  },
})

 

xhtml:

<view wx:for="{{StyleShpeSubList}}" wx:key="StyleShpeSubList">
    <image src="{{item.ShAtSubPicUrl!=''?item.ShAtSubPicUrl:'默认图片'}}" binderror="onImageError" data-err-img="StyleShpeSubList[{{index}}].ShAtSubPicUrl" mode='aspectFill'></image>
</view>

原理:

当图片有错误时会触发onImageError这个方法,然后通过var _errImg=ev.target.dataset.errImg取得有错误的图片的位置,然后用setData把这个地方的图片设置成默认的图片,这样一旦有错误就会把这个错误的图片替换成默认图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值