• 締切済み

複数画像の読み込みが完了したら、処理をすすめるには?

javascriptにおいて質問です。 いま、imgタグが40個あり、その画像すべての読み込みが 完了したときにメッセージを出したいです。 調べてみると、document.images[i].completeなるもので その画像の読み込みが完了したらtrueを返すものがあるようですので、 それを使って bodyのonLoadイベントにおいてimgタグ分まわして すべて.completeがtrueになるまで次の処理にいかないように したいのですが、どうすればいいのでしょうか? 画像の中には重いものもあって、forでまわしてもダメのようでした。 再帰処理とか使うのだろうと思うのですがうまくいきません。 すべての読み込みをチェックし、すべて読み込んだらメッセージを 出すロジックを教えてください。

みんなの回答

  • 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

suucha
質問者

補足

onLoadイベントは、たとえば重い画像が読み込まれた後に 発生するのではありません。 なんというか、HTMLの構成?を読み込んだら発生するのです。

  • VCAT
  • ベストアンサー率20% (16/79)
回答No.1

completeでのそのコードは危険ですよ。 あと画像の読み込み順序は保証がありません。 重い画像が40個あるということなら、軽くする のが良いのではないでしょうか。forで回せないよう な画像なら、それを読まされる方が迷惑です。

suucha
質問者

補足

40個もあったりするものをつくる自体不思議と思うでしょうが、これはGoogle Mapを使うためです。 そして画像の順番はあまり関係ないです。 やはり難しいですね。

関連するQ&A