document.writeで複数行を書く

[新着] Webテンプレートを仮オープンしました



0   名前: 匿名 : 2006/11/25(土) 20:35  ID:/pyHLynq
【何をしたいのか】
→ document.write関数で複数行にわたる文章を表示したい。
【現在の状況】
→ document.write("aaa<br>
bbb<br>
ccc<br>");
このような感じにしたいのですがうまくいきませんでした。
【何をしてみたのか】
→ 上のようなことや変数に代入してからwriteでやってみましたがどうもうまくいきませんでした。
【備考】
→ 複数行を表示するのは無理だから一行にするしかないのでしょうか?
→ 回答者の参考になるような情報があれば伝えてください。

1   名前: 牛若 : 2006/11/25(土) 20:35  ID:TG0J/lBP
これでどうですか。

document.write("aaa<br>",
"bbb<br>",
"ccc<br>");

2   名前: 匿名 : 2006/11/25(土) 20:35  ID:/pyHLynq
牛若さん
"",で囲めばよかったんですね。これに気が付かなかった自分が恥ずかしいです。
早速の返信ありがとうございました。m(_ _)m

3   名前: 匿名 : 2006/11/25(土) 20:35  ID:jQkVP7OG
document.write()は可変引数を取るんだっけ?

と思ったら、古いJavaScriptなら取るのか。
http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/reference/document.html#1221642

DOM HTML、MSDN、Gecko DOM 資料では可変とは書いてない。
http://www2u.biglobe.ne.jp/%7Eoz-07ams/prog/dom-ref/HTML/HTMLDocument.html#HTMLDocument-write
http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/write.asp
http://developer.mozilla.org/en/docs/DOM:document.write

可変引数もサポートされているとは思うが、
普通に文字列連結した方が無難だと思う(これも若干問題はあるが、とりあえず脇に置く)

document.write(
    "aaa<br>"
  + "bbb<br>"
  + "ccc<br>"
);


なお、ECMA仕様外だが、IE、Firefoxならば以下のように書くことも可能。
お勧めはしない。

document.write(
  "aaa<br>" \
  "bbb<br>" \
  "ccc<br>" \
);

4   名前: 匿名 : 2006/11/25(土) 20:35  ID:jQkVP7OG
>>3
ごめん、間違えた。

document.write("\
  aaa<br>\
  bbb<br>\
  ccc<br>\
");


繰り返すが、文字列リテラル内での改行はECMA規格外なので、TPOを弁えて使うべし。

一覧へ戻る