yucken の業務上電脳 Tips 日記、なのだよ。-弐式-

いまさら電脳 Tips といふものを、書いてみむとして、するなり.元々は広い意味での電脳(コンピュータ)の Tips を書いていたのですが,いつのまにか,解析ツールの「電脳 ruby」と IDL の Tips がメインに (・)>

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();