- 締切済み
外部ファイルでBODYのonloadイベントの関数を指定するには?
(1)<BODY onload="funcA()">という形でなく、 ヘッダー内に入れた外部ファイルに (2)document.body.onload=funcA; としたいのですが、 「document.bodyはオブジェクトではありません」 というエラーになってしまいます。 <script language="javascript" src="xx.js">は <head></head>の中に入れています。 どうしたら(2)の方法で、 外部ファイルでbodyのonloadイベントの関数を指定できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
外部JSの最後に、 window.document.onload=funcA; ではどでしょ?
- a-kuma
- ベストアンサー率50% (1122/2211)
> やってみたのですが、「htmlfile:実装されていません」というエラーになってしまいました 原因になりそうなことを、とりあえず、二つほど思いつきます。 ・関数や外部スクリプトファイル自体に問題がある onload で実行される関数をうんと単純にしてみましょう。例えば、xx.js の中身を function funcA() { alert("test"); } document.body.onload=funcA; だけにしてしまう。 これは、動くはずです。さっきの解答を書くときに確認したから。 ・ハンドラの指定の書式が違う document.body.onload=関数名 という書式は IE だけです。NN4.7x では無効な 書き方です(でも、違うエラーが出るはず)。 # NN6.x は手近にないので、確認できません。
補足
.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)
body オブジェクトができてから、ハンドラを定義すればよろし。こんな感じ。 <html> <head> </head> <body> ... </body> <script language="JavaScript" src="xx.js"> </script> </html>
補足
やってみたのですが、「htmlfile:実装されていません」というエラーになってしまいました
補足
エラーは出ないのですが、 window.document.onload=funcA; の行が実行されても funcAが実行されませんでした。。。