application/xhtml+xmlなページでdocument.writeを動作させる

読了まで:約2分


概要: document.write及びdocument.writelnを、Firefox、Opera 等で完全な DOM 仕様にしました。

document.writedocument.writelnを使った Javascript を、 MIME-Typeapplication/xhtml+xmlなページで動作させることができる夢のようなスクリプトが出来上がりました。

ダウンロード : - document.write.js

ライセンスは MIT-License です。

とりあえず、WindowsXP 上の

  • Firefox 2.0
  • Opera 8.53 (古!)

で動作することを確認しました。

たぶんですが、

  • Safari
  • Internet Explorer 7

でも動くかもしれません。

使い方は、document.write(document.writeln)が使われる前に、上記のスクリプトを読み込み、すべてのdocument.write(document.writeln)が使用された後に

document.write.run();

を呼び出せばいいです。

ちなみにテストが不十分なので条件によってはうまく動かないかもしれません。

追記:2006-12-16T10:44:00

実例がないのはアレなので、サンプルを作りました。

  • - document.write を appliation/xhtml+xml で動作させるサンプル

appliation/xhtml+xmlをサポートしているブラウザでなら見れます。IE6(=Internet Explorer 6)とかだと、多分ダウンロードになります。

手ごろなスクリプトが trackfeed しか無かったので、それしか使ってませんが、MIME-Typeappliation/xhtml+xmlなページできちんと動作しています。

あと若干上のスクリプトを修正しています。

追記終了

以下作りあげるまでの経緯。

Javascript の XML Parser(HTML Parser)探していたところ、 XML.ObjTree というのを発見した。

んでコード見てみると、ブラウザの独自拡張使って XML をパースしていて、「これならいける」と思い、試しにやってみたところtext2domが実装できたので、完成した、という感じ。

ブラウザによって動かないのは独自拡張使ってるせいで、XML のパースは XML.ObjTree とあんまり変わりないので、多分 XML.ObjTree が動くブラウザであれば、今回のスクリプトも動く。

IE6(=Internet Explorer 6)で動かなかったりするんだけど、そもそも IE6 ではMIME-Typeapplication/xhtml+xmlだと表示できなかったはずなので、特には問題にはならないはず。

ただ、そのまま使うには、問題があったりなかったりするので、各自工夫して使ってください。

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。