0

Ajax を使用して JSON コンテンツをロードするマイクロサイトがあり、IE7 と IE8 で初めて動作しますが、これらのブラウザーを更新すると失敗し、フィドラーをチェックインしましたが、エラーは発生しません。どこかのコードのエラーでしょうか?

var firstBackgroundImage = new Image();
                firstBackgroundImage.src = "img/bg-img.jpg";        
                firstBackgroundImage.onload = function () {
                    $('#loading-image').hide();
                    $(".wrap").fadeIn(300);
                    loadContent();
                };

function loadContent(){ 
    $.ajax({
        url: "json/" + language + "/content.json",
        data: "nocache=" + Math.random(),
        type: "GET",
        cache : false,
        contentType: "application/json",
        dataType: "json",
        success: function(source){
            data = source;
            showStartpage(data);
            showInfo(data);
        },
        error: function(data){
            alert("Failed to load content");
        }
    }); 

}

「コンテンツの読み込みに失敗しました」というアラートが表示されず、読み込み中の画像が表示されるだけです。何か問題がある可能性はありますか? 誰も同じ問題を抱えたことがありますか?

ありがとう!

4

1 に答える 1

2

Internet Explorer がキャッシュから画像をロードしていないため、初めて機能するため、イベント ハンドラーを設定loadする行の後にイベントが発生します。firstBackgroundImage.onload = ...ただし、後続のページの読み込みでは、キャッシュされたバージョンの画像が使用されているためload、イベント ハンドラーを設定する前にイベントが発生します。

この 2 行の順序を変更するだけです。loadイベント ハンドラーを設定してから、画像のプロパティsrcを設定します。

var firstBackgroundImage = new Image();
firstBackgroundImage.onload = function () {
    $('#loading-image').hide();
    $(".wrap").fadeIn(300);
    loadContent();
};
firstBackgroundImage.src = "img/bg-img.jpg";      
于 2013-04-17T09:58:13.803 に答える