空繰再繰

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

を呼び出せばいいです。

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

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

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

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

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

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

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

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

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

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

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

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

Trackbacks

TrackBack ping me at

Comments

Post a comment

コメントを投稿する前にコメントについてをお読みください。

(メールアドレスは表示されません)