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()