2

何かをする前にドキュメントの準備ができていることを確認するために、私は次のことを行います:

(function() {
    var interval = window.setInterval(function() {
        if("complete" === document.readyState) {
            window.clearInterval(interval);
            // Some stuff
        }
    }, 10);
})();

私のコードのどこかに、JavaScriptから次のような画像を作成する場合:

var image = new Image();
image.onload = function() {
   // Some other stuff
};
image.src = 'some_url';

document.readyStateで実行するチェックも、「画像」が読み込まれるのを待ちますか、それともHTMLコードに存在する画像とそれらだけが読み込まれるのを待つだけですか?

前もって感謝します。

4

2 に答える 2

2

あなたはあなたを必要としませんsetInterval

MDNから

ロードイベントは、ドキュメントのロードプロセスの最後に発生します。この時点で、ドキュメント内のすべてのオブジェクトがDOMにあり、すべての画像とサブフレームの読み込みが完了しています。

静的に含まれる画像に対してこれを簡単に行うことができます:

window.onload = function() {
    // Some stuff
};

これは後で作成する画像を考慮に入れていないため、次のようにすることができます。

window.onload = function() {
    var image = new Image();
    image.onload = function(){
        // Some stuff
    };
    image.src = 'some_url';
};
于 2012-09-26T08:51:31.213 に答える
0

jqueryでは、document.ready()関数は、htmlページ全体の準備ができたときに呼び出されます。または、バインドと言うこともできます(技術用語で)。

インターバル時間を増やしてみてください。または、処理を実行するための画像ロードコールバックを含めます。

于 2012-09-26T08:58:15.937 に答える