• 締切済み

<body onload=""> と window.onload

JavaScriptのonload処理についての質問です。 現在Java、JSP、JavaScript等でWebアプリケーションを作成しているのですが、 bodyタグ中のonloadに記載したファンクションが時々呼ばれないという問題が起きています。 (こんな感じで記述  <body onload="hoge();hogehoge();">  hogehoge()がたまに呼ばれないことがある・・・) これを回避する方法として、「onload処理をwindow.onloadに記述すれば良い」 という話を聞きました。 (こんな感じで記述  <script>    window.onload = function(){ hoge();hogehoge(); }  </script> ) 「bodyタグ中に記述するとたまに呼ばれないものが、window.onloadに記述すると確実に呼ばれる」 なんてことがあるのでしょうか? 「2つめのファンクションが呼ばれない」という現象がたまにしか発生しないので、 window.onloadに記述する方法で確実に呼ばれるようになったという保証がとれません。 知識として知っている方がいれば是非教えていただきたいです。 よろしくお願い致します。 ※ブラウザはIEを使用  バージョンは IE → 6.0      JavaScript → 1.1 です。  

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

><body onload="hoge();hogehoge();"> hoge()に処理を中断するような内容が書かれている可能性もあります。 そうなると、なにをやってもhogehoge()は実行されません。 また、タグにメソッドを書き込むのはHTMLとJavascriptの分離という 視点でもあまりスマートではありません。 意識してwindow.onloadを使った方がきれいなソースになります

tom2_
質問者

お礼

回答ありがとうございます。 今ソースを確認できないんで確かではないんですが、 hoge()の中にはそういった記述はなかったように記憶しています。 ただ、hoge()の中身はもう1度ちゃんと調べてみたいと思います。 HTMLとJavascriptの分離は大事ですよね。 できればwindow.onlaodを使うように変更したいんですが、 名目がないと簡単には直せない環境でして・・・。 とにもかくにも、素早い回答ありがとうございました。

tom2_
質問者

補足

  <<お礼書き込み後の補足です>> 少し遅くなりましたが、ソースの方確認できました。 やはり記憶どおりhoge()に処理を中断するような内容は 書かれていませんでした。 もし何か新しい情報ありましたらよろしくお願い致します。  

関連するQ&A