JavaScriptでのdocument.writeを使った表示

[上に] [前に] [次に]
peymon 1998/02/22(日) 21:40:42
こんばんは、いつもお世話になっています。
JavaScriptのdocument.writeの中にhtmlのタグを使う場合、
例えば
document.write("これは絵です→<IMG SRC='...'>かっこいい");
とすると、「かっこいい」の部分が表示されなかったり、また
ホームページの1番最後の端に表示されるなんてことありませんか?
どうして起こるのか、また、これを防ぐ方法をご存知の方、
解答、お待ちしております!

hiro-kim 1998/02/24(火) 12:21:27
document.write()で生成されるHTML文字列が,<body></body>で挟まれた中に書かれていなかったときに,そういう現象に出会った覚えがあります。

peymon 1998/02/25(水) 15:27:50
ありがとうございます、hiro-kimさん。
私の場合、この現象は、
<SCRIPT>タグを2個以上使い、
その間にテキストなど(かなり書き込んでいる)がある場合に
よく起こります。

私のホームページは、

<html>
<head>
<SCRIPT language="JavaScript">

//ここにいろいろたくさん書く

</SCRIPT>
</head>
<body>
<h1>ホームページの題</h1>
なんたらかんたら
たくさん書いています
<SCRIPT>
//ここに時間ごとに表示が変わるプログラムを置いている
document.write("絵だよ<IMG SRC='...'>やっほー");
........
//とにかくたくさん書いている
</SCRIPT>
ここにも多く書いてます
</body>
</html>

・・・と、まあこんな風に実際使っている訳です。
何かおかしいでしょうか?

まさお [E-Mail] [HomePage] 1998/02/26(木) 20:06:45
とりあえず
document.writeで書き込む最後の次に行に

document.close();
を加えてみてください。
たぶんこれでOKだと思います。

documentオブジェクトの仕様で、document.writeを使ったときは
document.close();
で締めくくるのが本当の使い方なのですが、
document.write中で<br>を使用してもテキストは表示されるので
ついつい忘れてしまいますね。

peymon 1998/03/01(日) 11:18:23
[[解決]]
教えて下さり、ありがとうございます、まさおさん。
document.close();をつけてみたら直りました。
これで解決ですね。


[上に] [前に] [次に]