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

1,200 阅读1分钟

由于在项目中多个页面都要用到这个代码,所以我们在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把这个地方的图片设置成默认的图片,这样一旦有错误就会把这个错误的图片替换成默认图片