js判断多个图片(Array)的url是否有效
// 12 判断一张图片url是否有效
var img_arr = ['1.jpg',
'3.jpg',
'5.jpg',
'9.jpg',
'31.jpg',
'49.jpg',
'80.jpg',
'09.jpg',
'37.jpg',
]; //默认图片(失败显示图)
let idx = 0;
// 该方法是判断图片是否存在
function is_img_url(imgurl) {
return new Promise(function (resolve, reject) {
var ImgObj = new Image(); // 生成一个Image对象
ImgObj.src = imgurl;
ImgObj.onload = function (res) {
if (this.complete == true) {
resolve(imgurl); // 图片显示正常 就直接返回
}
}
ImgObj.onerror = function (err) {
resolve('./img/icon_location.jpg') // 图片异常 就返回另一张图片
}
})
};
// 这里是使用递归的方式来判断每一张图片是否正常
function isErrorImgHandler() {
let cover_img = [],
str = '';
let loopImgList = function (url, idx) {
is_img_url(url).then((res) => {
cover_img[idx] = res
if (idx == img_arr.length - 1) {
cover_img.forEach(v => {
str += `<img src="${v}"/>`
});
$('body').html(str)
return
} else {
idx++;
loopImgList(img_arr[idx], idx)
}
})
}
loopImgList(img_arr[idx], idx)
}
isErrorImgHandler()