WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:window.onloadの外部ファイル読込

0:[投稿] am [2003/03/06 19:17 ][環境:IE6,XP UNIX,Apache]

onload時に外部ファイル読込を行いたいと考えていますが、
以下のようにするとエラーになってしまいます。
どうしてでしょうか?

因みに外部ファイルには、「alert("111");」と記述しています。


-------------------- ↓test.htm --------------------
<html>
<body>
test page

<SCRIPT Language="JavaScript">
<!--

window.onload = func; //←ここを「func();」とすれば問題ありません。

function func(){
document.write('<SCRIPT Language="JavaScript" SRC="./test.js"></SCRIPT>');
}

// -->
</SCRIPT>

</body>
</html>


1:[回答] andi [2003/03/06 20:31 ]

document.writeの中で"</"を使ってはいけなかった気がします。
どちらにせよ、</script>でJavaScriptが途切れているかも。

"<\/"等にしてみては如何ですか?


2:[回答] am [2003/03/07 01:36 ]

andiさんありがとうございます。
試してみましたがダメでした…。
func();では動作するので、JavaScriptが途切れていないと思います。


3:[回答] ・・ [2003/03/07 13:52 ]

何をしたいのか良く分からないのですが・・。

onload で関数を呼ぶのであれば、<head>〜</head> 内に書かないとエラーになるけど。

<html>
<head><script>
function func(){
document.write('<SCRIPT Language="JavaScript" SRC="./test3.js"></SCRIPT>');
}
</script>
</head>
<body>
test page
<SCRIPT Language="JavaScript">
<!--
window.onload = func();
// -->
</SCRIPT>
</body>
</html>
これで外部ファイルのalert("111"); は実行されました。


4:[回答] ・・ [2003/03/07 13:59 ]

head 内のスクリプトにコメント付け忘れ。

下記も動きました(IE6.0、5.5とも)
<html>
<head><script>
<!--
function func(){
document.write('<SCRIPT Language="JavaScript" SRC="./test3.js"></SCRIPT>');
}
//-->
</script>
</head>
<body>
test page
<SCRIPT Language="JavaScript">
<!--
window.onload = func;
// -->
</SCRIPT>
</body>
</html>


5:[回答] am [2003/03/07 17:59 ]

3で、教えて頂いた方法ですと、ブラウザに '); } test page と表示され、
test3.jsのalert("111");は実行されず、ブラウザ左下のダイアログボックスに
エラーマークが出てしまいます。

4で、教えて頂いた方法ですと、alert("111");は実行されるのですが、
HTML内に記述しているtest pageの文字が表示されず、真っ白い画面が
表示されてます。

ソースをコピーするだけではなく、何か他に設定が必要なのでしょうか?


6:[回答] ween [2003/03/07 19:48 ]

> HTML内に記述しているtest pageの文字が表示されず、真っ白い画面が
> 表示されてます。
そういうものです。
読み込み中の document.write は文書に追記を行いますが
読み込み完了後の document.write は現在の文書をクリアして
新規にテキストを書き込みます。

…というか、うちの環境(Win2000+IE6)では
>>0 のソースのままでもエラーが出ないんですが。


7:[回答] ・・ [2003/03/10 14:13 ]

追記で文字などを書きたいなら、<body>〜</body>間の該当部分に、
document.writeln 文を記述すればいいです。
onLoadではなくて。


8:[完了] am [2003/03/10 19:01 ]

onunload時でも、最初にHTMLファイルを読込んだ時と同じように
処理できると思っていましたが、どうも難しそうですね。

他の方法を考えてみます。
みなさんありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World