- 締切済み
複数画像の読み込みが完了したら、処理をすすめるには?
javascriptにおいて質問です。 いま、imgタグが40個あり、その画像すべての読み込みが 完了したときにメッセージを出したいです。 調べてみると、document.images[i].completeなるもので その画像の読み込みが完了したらtrueを返すものがあるようですので、 それを使って bodyのonLoadイベントにおいてimgタグ分まわして すべて.completeがtrueになるまで次の処理にいかないように したいのですが、どうすればいいのでしょうか? 画像の中には重いものもあって、forでまわしてもダメのようでした。 再帰処理とか使うのだろうと思うのですがうまくいきません。 すべての読み込みをチェックし、すべて読み込んだらメッセージを 出すロジックを教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- SAYKA
- ベストアンサー率34% (944/2776)
回答No.2
? そもそもbodyにonloadが有る場合はbodyの中身が全部読み終わったら呼ばれるんだけど? http://www.tohoho-web.com/js/window.htm#setTimeout http://www.tohoho-web.com/js/image.htm#complete
- VCAT
- ベストアンサー率20% (16/79)
回答No.1
completeでのそのコードは危険ですよ。 あと画像の読み込み順序は保証がありません。 重い画像が40個あるということなら、軽くする のが良いのではないでしょうか。forで回せないよう な画像なら、それを読まされる方が迷惑です。
質問者
補足
40個もあったりするものをつくる自体不思議と思うでしょうが、これはGoogle Mapを使うためです。 そして画像の順番はあまり関係ないです。 やはり難しいですね。
補足
onLoadイベントは、たとえば重い画像が読み込まれた後に 発生するのではありません。 なんというか、HTMLの構成?を読み込んだら発生するのです。