電子書籍の厳選無料作品が豊富!

(1)<BODY onload="funcA()">という形でなく、
ヘッダー内に入れた外部ファイルに
(2)document.body.onload=funcA;
としたいのですが、
「document.bodyはオブジェクトではありません」
というエラーになってしまいます。

<script language="javascript" src="xx.js">は
<head></head>の中に入れています。

どうしたら(2)の方法で、
外部ファイルでbodyのonloadイベントの関数を指定できるでしょうか?

A 回答 (3件)

> やってみたのですが、「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想定です

補足日時:2002/07/25 12:26
    • good
    • 0

外部JSの最後に、



window.document.onload=funcA;

ではどでしょ?

この回答への補足

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

補足日時:2002/07/25 12:31
    • good
    • 0

body オブジェクトができてから、ハンドラを定義すればよろし。

こんな感じ。

<html>
<head>
</head>
<body>
  ...
</body>
<script language="JavaScript" src="xx.js">
</script>
</html>

この回答への補足

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

補足日時:2002/07/24 13:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!