多数の画像を動的 DIV にロードしており、プリローダーを使用して画像を取得しています。
imageObj = new Image();
imageObj.src = imgpath + imgname;
これらの各イベントは、Firebug で確認および監視できる GET を作成します。
画像の名前とパスがわかっている場合、関連する XMLHttpRequest を監視して、GET が完了したかどうかを確認できますか?
このプロセスで .onload イベントに依存 (または使用) したくありません。
擬似は次のようになります...
if (imageObj.GET = 'complete')
誰もこれを経験したことがありますか?
編集1
Bart の助けのおかげで (以下を参照)、画像オブジェクトの配列を格納するように画像プリローダーを変更しました...
function imagePreLoader(imgname) {
images[imgnum] = new Image();
images[imgnum].src = imgpath + imgname;// load the image
imgnum ++;
}
そして、他のすべての関数が実行されてコンテンツ DIV が作成された後、次のように image.complete 属性を使用しました...
var interval = setInterval(function () {
imgcount = imgnum - 1; // because the imgnum counter ++ after src is called.
ok = 1;
for (i=0; i<imgcount; i++) {
if (images[i].complete == false){
ok = 0;
}
}
if (ok == 1) {
clearInterval(interval);
showIndexOnLoad();
}
}, 1000);
これは、すべての画像が完了するまで待機showIndexOnLoad()
し、間隔関数から「ok」を取得したときにのみ関数をトリガーします。
すべての画像が思いどおりに表示されるようになり、GET が追いつくのを待つ必要がなくなりました。
image.complete属性を付けてくれた Bart さん、よくやった。