document.write(); は複数個並べられない?
JavaScript で、HTML を自動的に生成するとき、Netscape では、下のような書き方はできないみたいです。
document.write("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>?n"); document.write("<HTML>?n<HEAD>?n"); document.write("<META http-equiv='Content-Type' content='text/html; charset=Shift_JIS'>?n"); (中略) document.close();
InternetExplorer や、Firefox ではこれでも問題ないのですが、Netscape では、問題が顕在化するようです。そこらへんの参考書を見ても詳しくは書いてないのですが、document.write は document.close と 1 対 1 対応でないとだめなようです。
# ただ、どの参考書を見ても、HTML を生成するスクリプトは、いったん文字列変数に生成する HTML のコードを入れてから document.write で一括で書くという書き方をしています。僕はどこでこんな変な書き方を覚えたのでしょう (- -;)。
var html = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>?n"; html += "<HTML>?n<HEAD>?n"; html += "<META http-equiv='Content-Type' content='text/html; charset=Shift_JIS'>?n"; (中略) document.write(html); document.close();