1. 仅验证一张图片链接:
function checkImgExists(imgurl) {
return new Promise(function(resolve, reject) {
var ImgObj = new Image();
ImgObj.src = imgurl;
ImgObj.onload = function(res) {
resolve(res);
}
ImgObj.onerror = function(err) {
reject(err)
}
})
}
checkImgExists('https://test.com/20200803115749u=2876792700,1627849181&fm=26&gp=0.jpg').then(()=>{
//success callback
console.log('有效链接')
}).catch(()=>{
//fail callback
console.log('无效链接')
})
2. 同时验证多张图片链接:
let strArr = [
"http://www.baidu.com",
"https://static.segmentfault.com/v-5ab0701d/global/img/social-icons/icon-sn.svg",
"https://sfault-avatar.b0.upaiyun.com/151/837/1518375183-54f135ef0d731_small"
];
function getPromises(src) {
let img = document.createElement("img");
img.src = src;
return new Promise(function(resolve, reject) {
img.onerror = () => {
resolve(undefined);
};
img.onload = () => {
resolve(src);
};
});
}
Promise.all(strArr.map(src => getPromises(src))).then(data => {
console.log(data);
// [
// undefined,
// "https://static.segmentfault.com/v-5ab0701d/global/img/social-icons/icon-sn.svg",
// "https://sfault-avatar.b0.upaiyun.com/151/837/1518375183-54f135ef0d731_small"
// ];
});