• 締切済み

外部ファイルでBODYのonloadイベントの関数を指定するには?

(1)<BODY onload="funcA()">という形でなく、 ヘッダー内に入れた外部ファイルに (2)document.body.onload=funcA; としたいのですが、 「document.bodyはオブジェクトではありません」 というエラーになってしまいます。 <script language="javascript" src="xx.js">は <head></head>の中に入れています。 どうしたら(2)の方法で、 外部ファイルでbodyのonloadイベントの関数を指定できるでしょうか?

みんなの回答

noname#5841
noname#5841
回答No.3

外部JSの最後に、 window.document.onload=funcA; ではどでしょ?

godori
質問者

補足

エラーは出ないのですが、 window.document.onload=funcA; の行が実行されても funcAが実行されませんでした。。。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> やってみたのですが、「htmlfile:実装されていません」というエラーになってしまいました 原因になりそうなことを、とりあえず、二つほど思いつきます。 ・関数や外部スクリプトファイル自体に問題がある onload で実行される関数をうんと単純にしてみましょう。例えば、xx.js の中身を function funcA() {   alert("test"); } document.body.onload=funcA; だけにしてしまう。 これは、動くはずです。さっきの解答を書くときに確認したから。 ・ハンドラの指定の書式が違う document.body.onload=関数名 という書式は IE だけです。NN4.7x では無効な 書き方です(でも、違うエラーが出るはず)。 # NN6.x は手近にないので、確認できません。

godori
質問者

補足

.NET Framework 環境で開発しているのですが、 FuncAを function funcA() {   alert("test"); } だけにしてもエラーでした。 そこで1ステップずつデバッグしてみた所、 一度は document.body.onload=funcA; から funcAが走ってalert("test")が表示されるのですが、 その後もう一度 document.body.onload=funcA; の行が実行されてエラーになっているようでした。 ブラウザはIE5.5かIE6.0想定です

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

body オブジェクトができてから、ハンドラを定義すればよろし。こんな感じ。 <html> <head> </head> <body>   ... </body> <script language="JavaScript" src="xx.js"> </script> </html>

godori
質問者

補足

やってみたのですが、「htmlfile:実装されていません」というエラーになってしまいました

関連するQ&A