0

私のプリローダーは、PCとMACの両方のすべての主要なブラウザーで完全に機能しますが、iPadでは不安定に見えます。

うまくいくこともあれば、うまくいかないこともありますが、キャッシュをクリアすると、最初の試行でほとんどすべて失敗します。私は本当にここで立ち往生しているので、助けていただければ幸いです。

これは私のコードです:

    function preloadimages(arr){

    var newimages=[], loadedimages=0
    var postaction=function(){}
    var arr=(typeof arr!="object")? [arr] : arr
    function imageloadpost(){
        loadedimages++
        if (loadedimages==arr.length){
            postaction(newimages) //call postaction and pass in newimages array as parameter
        }
    }
    for (var i=0; i<arr.length; i++){
        newimages[i]=new Image()
        newimages[i].src=arr[i]
        newimages[i].onload=function(){
            imageloadpost()
        }
        newimages[i].onerror=function(){
            imageloadpost()
        }
    }
    return { //return blank object with done() method
        done:function(f){
            postaction=f || postaction //remember user defined callback functions to be called when images load
        }
    }
    }

    $(document).ready(function(){

    preloadimages(['img/bg_joejuice.jpg',
                    'img/bg_facebook.jpg',
                    'img/bg_webshop.jpg',
                    'img/bg_spotify.jpg',
                    'img/btn_grey_down.png',
                    'img/btn_pink_down.png',
                    'img/coffee_active.png',
                    'img/juice_normal.png',
                    'img/sandwich_active.png',
                    'img/remove_down.png',
                    'img/inc_down.png',
                    'img/dec_down.png',
                    'img/checkbox_unchecked.png',
                    'img/hide_spotify.png',
                    'img/logo_facebook_active.png',
                    'img/logo_joejuice.png',
                    'img/logo_spotify_active.png',
                    'img/logo_webshop_active.png',
                    'img/checkbox_unchecked.png',]
    ).done(function(){
        console.log("loaded");
    });
});

編集:指定しなくてすみません。

コンソール(関連)でエラーが発生せず、「ロードされた」コメントをログに記録するポイントに到達しません。

http://md4a1215.keaweb.dk

新しい編集私は19枚の写真を手に入れました。forloopを19回実行します。エラーが発生すると、通常は18の「オンロード」が発生し(ただし、16と低くなっています)、「オンエラー」は発生しません。

トリガーされないのはonerror関数のようです(ただし、MACとPCの両方のすべての主要なブラウザーでトリガーされます。リストに含まれているIDの画像の1つを削除すると、iPadでもトリガーされます)。 。これは正しいですか?-もしそうなら、どうすればこれを機能させることができますか?

4

1 に答える 1