所以我需要一个函数来测试图像是否可以加载。这就是我所拥有的:
function imgExists(url){
var img = new Image();
img.onerror = function(){
alert('error')
}
img.onload = function (){
alert('load')
}
img.src = url;
}
imgExists('http://hashtraffic.com/img/jackson@2x.png')
问题是警报被困在他们的胜利功能中。如果图像加载,我如何让imgExists()
函数返回true,如果不加载则返回false?
答案 0 :(得分:6)
您需要使用回调,因为您的函数本质上是异步的:
function imgExists(url, callback) {
var img = new Image();
img.onerror = function() {
callback(false);
}
img.onload = function () {
callback(true);
}
img.src = url;
}
function checkImage(exists) {
alert("Image exists: " + exists); // Usage example.
}
imgExists('http://hashtraffic.com/img/jackson@2x.png', checkImage);