カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

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

概要: 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 だと表示できなかったはずなので、特には問題にはならないはず。

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