-2

我想用 javascript 代码检查图像是否存在

function imExist2(imurl, callback) {
    var img = new Image();
    img.onload = function() { callback(true); };
    img.onerror = function() { callback(false); };
    img.src = imurl;
}

使用代码

function imExist(imNr) {
    var imUrl = 'default.png';
    var imageUrl = 'image' + imNr + '.png';
    var imageUrl = imExist2(imageUrl, function(exists) {
        //problem is that the inner function imExist2 is running too late
        //after if all other javascript have runned to end
        if(exists) imUrl = imageUrl;
        alert(2);
    });
    return imUrl;
}

以及如何按“1”、“2”和“3”而不是“1”、“3”和“2”的顺序获取警报。如果相应地存在正确的图像,我想在程序范式函数 imExist() 中正确返回真或假?

alert(1);
(imExist(23));
alert(3);

谢谢

4

1 回答 1

1

如果没有回调,您将无法做到这一点。

如果你想用 JavaScript 编程,你必须学习的第一件事是处理异步动作和事件。

您必须使用以下函数将您alert(3)的回调放入:imExist2

alert(1);
imExist2('image' + 23 + '.png', function(ok){
    alert(3);
    alert('ok:' + ok);
});

顺便说一句,如果您使用console.log而不是alert.

于 2013-09-14T09:33:28.637 回答