0

それで私は別の問題に出くわしました。

作業中のWebページをやり直し始めたとき、アイデアに出くわしました。ページに資料をプリロードして、ロード画面を表示してみませんか?さて、私はそのための関数を作成しましたが、問題は、画像のプリロードのopen()部分になるまで、想定どおりの動作を開始することです。それは単に機能しません。それは私がそれにそれをそこで止めさせているarguments[i]の部分を与えているからですか?それを行うためのより良い方法はありますか?

function mainPageLoad() {
    var loadScreen = document.getElementById('pageload');
    loadScreen.innerHTML = "<p>Loading<span id='loadingWhat'>...</span></p><img src='images/loading.gif?v2'>";
    var loadspan = document.getElementById('loadingWhat');
    loadspan.innerHTML = " images";
    preloadImages(["images/logo.jpg"])
    //loadspan.innerHTML = " content";
    //preloadContent([""]);
}

function preloadImages() {
    var images = new Array();
    var imagesToLoad = arguments.length;
    document.writeln(imagesToLoad);
    var imagesLoaded = 0;
    document.writeln(imagesLoaded);
    for (i = 0; i < arguments.length; i++) {
        document.writeln("Loading images.");
        images[i] = new XMLHttpRequest();
        document.writeln("Made object");
        images[i].open("GET", arguments[i], true);
        document.writeln("Well, that worked.");
        images[i].send(null);
        document.writeln("Sent.");
        images[i].onreadystatechange = function() {
            document.writeln("Ready state change!");
            if (images[i].readystate == 4 && images[i].status == 200){
                imagesLoaded = imagesLoaded + 1;
                window.alertln("We have loaded another image.");
                window.alertln("Image" + String(imagesLoaded) + "out of" + String(imagesToLoad));           
            }
        }
    }
}

window.onload = init;
4

1 に答える 1

3

これは、画像をプリロードし、関連する以前の質問/回答で画像のロードが完了したときにコールバックを呼び出すようにする、はるかに簡単な方法です。イベントをサポートする画像プリローダーjavascript

于 2012-07-18T19:00:17.330 に答える