2

所以我需要一个函数来测试图像是否可以加载。这是我所拥有的:

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?

4

1 回答 1

7

您需要使用回调,因为您的函数本质上是异步的:

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);
于 2012-06-21T12:34:41.037 回答