DOM弄りを楽しんでいます。過去の文書操作系のカスタムパネルは、DOM Inspectorをリッチにする形で統一しようと考えています(DOMといってもDOM1 HTML)。その他、危険な香りのするバグを発見したりしました。
ツリーの構築は:
という形で行っています。一気にツリー全てを構築しようとすると、凄まじく時間がかかるからです。最初、これは私のJScriptコードに問題があるのかと思いましたが、何十回と繰り返されるappendChildメソッドによる描画速度の問題のようです。
しかしDOMツリーをカスタムパネル内に視覚化できたとしても、文書内のある要素が、DOMツリー上のどの位置にあるのかが分からなければ、これは完全に遊びに終ってしまうでしょう。fub_netの素晴らしい点は、アクティブタブ内に表示している文書のイベントを、カスタムパネル側で処理できることです。この特徴を利用すれば、「要素をクリックする」等のアクションを介して、DOMツリー上のその要素の位置をスタイルの変更等によって明示することが可能です。
要するにそこで躓いたわけです。わらい。
Ctrl + 右クリックでDOMツリーを展開し、クリックした要素の位置を明示するようにしました。真っ当なHTML文書であれば今のところ問題なく動作するのですが、b要素の子にul要素があるような「妥当でないHTML文書」の場合、その周辺で訳の分からないエラーが発生します。どうにもこうにも原因が分かりません。
これは実はfub_netのバグではありません。IE6のバグです。簡単なブラウザクラッシャーを見つけました。
for(var i in alert){}
メソッドなら何でも良いのです。厄介なのは、typeof(alert)で"object"という文字列が返ってくることです。はて。"function"を期待していた私が馬鹿だったのでしょうか。