Jintrick.netagenda2004年08月アーカイブ → 2004年08月24日

replaceWholeTextについて

分かり辛いという噂。あちこちに書かれた命題を整理してみる。replaceWholeTextメソッドを呼ぶと:

ここまではいいとして。

「置換されようとしているTextノードが読み取り専用だった場合」は、親のEntityReferenceが削除されて新しいTextノードが作成されるンじゃあないのかい。そのEntityReferenceの子供にEntityReference、Text、CDATASection以外の子供がいたら、その時にDOMExceptionが発生する……って上に書いてあるじゃねえか。だから、置換されようとしているTextノードが読み取り専用だったとしても、DOMExceptionが発生するとは限らない筈なのに。

それとも、親がEntityReferenceでないのに読み取り専用のTextノードがあるということなのか……。

因みにlogically-adjacentなTextノード達というのは、あるTextノードを出発点と考えた時、preceding軸、following軸、ancestor軸とdescendant軸を、Element、Comment、ProcessingInstructionノードにぶつからない限り遡及的に辿っていった時のTextまたはCDATASectionノード達。要するにCSSでは一つの匿名ブロックとして扱われるノード達のこと。EntityReferenceノードを扱う場合、この匿名ブロックが糞ややこしいツリー構造を持ちうる。その糞ややこしい匿名ブロックという単位でテキストを置換できるのがreplaceWholeTextメソッド。


webmaster@jintrick.net
公開: 2004年08月24日
カテゴリ: DOM