-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」、「3」、「2」ではなく、「1」、「2」、「3」の順序でアラートを取得するにはどうすればよいですか。手続き型パラダイム関数 imExist() のように、正しい画像が対応して存在する場合、正しく true または false を返しますか?

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.logalertを使用すると、生活が良くなります。

于 2013-09-14T09:33:28.637 に答える