カラクリスタ

document.writeハックに関するメモ

document.writeを完全な DOM 対応にするためのメモ。

で、あとはテキストから DOM を構築する方法が分かれば、document.writeを元々の動作を失わせること無く、DOM に完全対応させることができる。

スクリプトの処理の流れをまとめると、

  1. スクリプト自体が属する script 要素を取得
  2. document.writeを書き換え、そのスクリプトのdocument.writeで書き出される HTML テキストを取得
  3. HTML テキストから DOM を構築する
  4. スクリプト要素が切り替わる、もしくはすべてのdocument.writeが実行され終わった後に生成した DOM ノードを追加する

という感じ。

以上のような感じで、document.write(もしくはdocument.writeln)を書き換えると、MIME-Typeapplication/xhtml+xmlなページでdocument.writeが使えるようになる。(XHTML2 でも多分使える?)

と思うんだけど、僕だと書けそうにない。

Text2DOM はすでにあったりするような気がするんだけど、どうも他のライブラリ群のなかのひとつみたいだったので、そのまま使うのはちょっと問題があったようななかったような。

まあでも、application/xhtml+xmlなページでdocument.writeが使えるようになるという夢のようなスクリプトまで、あとちょっとなので、誰かやってくれないかなぁ。

追記:2006-12-07T16:20:00+09:00

とりあえず他人任せはアレなので途中まで書いた。

  • -* writer.js

が、肝心のテキストから DOM を生成する部分ができてないので、動きません(ちなみにテストもしてない)。どこかにないかなぁ。

コードはパブリック・ドメインなので、改造は自由です。といいつつも、コードが微妙なので、あんまり参考にはならないかも。