[1] [CODE(DOMi)@en[[[DocumentFragment]]]] [[節点]]の [CODE(DOMm)@en[[[appendChild]]]], [CODE(DOMm)@en[[[insertBefore]]]], [CODE(DOMm)@en[[[replaceChild]]]] [[メソッド]]の第1引数に自分自身を指定した場合のテスト [2] [[Firefox]] 1.5, [[Opera]] 9 TP1 ではいずれも [CODE(DOM)@en[[[HIERARCHY_REQUEST_ERR]]]]。 [[WinIE]] 6 ([[Windows XP]] [[SP2]]) ではいずれも成功。 [CODE(DOMm)@en[[[appendChild]]]] と [CODE(DOMm)@en[[[insertBefore]]]] では実行前と変化なしで、 [CODE(DOMm)@en[[[replaceChild]]]] は第2引数に指定した[[節点]]が消失。 仕様書が曖昧なので、どちらも悪くはない動作だと思いますが。。。 [3] [CODE(DOMa)@en[[[appendChild]]]] や [CODE(DOMa)@en[[[insertChild]]]] で [CODE(DOMi)@en[[[Attr]]]] に [CODE(DOMi)@en[[[Node]]]] を追加しようとすると、 [CODE(DOMa)@en[[[nodeType]]]] に関わらず、 - [[Firefox]] 1.5 は [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]] を投げます。 - [[Opera]] 9 は [CODE(DOMc)@en[[[HIERARCHY_REQUEST_ERR]]]] を投げます。 - [[WinIE]] 6 は[[例外]]を投げませんが、何も起こりません。 ([[名無しさん]]) [4] [[Opera]] 9 は [CODE(DOMi)@en[[[DocumentType]]]] を [CODE(DOMm)@en[[[appendChild]]]] や [CODE(DOMm)@en[[[insertBefore]]]] で追加できません ([CODE(DOMm)@en[[[createDocument]]]] ならおk)。 ([[名無しさん]]) [5] [[Firefox]] 1.5 は [CODE(DOMi)@en[[[DocumentType]]]] を [CODE(DOMi)@en[[[Document]]]] に追加できますが、 別の [CODE(DOMi)@en[[[DocumentType]]]] や [CODE(DOMi)@en[[[Element]]]] の[[弟]]とすることはできません。 ([[名無しさん]]) [6] >>5 [CODE(DOMm)@en[[[insertBefore]]]] で [CODE(DOMi)@en[[[Element]]]] の[[兄]]とすることもできません。 ([[名無しさん]]) [7] >>5 他の[[文書]]で使われている [CODE(DOMi)@en[[[DocumentType]]]] でも、勝手に [CODE(DOMm)@en[[[adoptNode]]]] されるようです。 ([[名無しさん]]) [8] [[Opera]] 9 は [CODE(DOMi)@en[[[Document]]]] に [CODE(DOMi)@en[[[Text]]]] や [CODE(DOMi)@en[[[CDATASection]]]] を追加できます。 また、既に [CODE(DOMi)@en[[[Element]]]] があっても更に [CODE(DOMi)@en[[[Element]]]] を追加できます。 ([[名無しさん]]) [9] >>5 また、 [CODE(DOMi)@en[[[DocumentType]]]] を [CODE(DOMi)@en[[[Element]]]] の前に [CODE(DOMm)@en[[[insertBefore]]]] で追加することもできません ([CODE(DOMc)@en[[[HIRARCHY_REQUEST_ERR]]]])。 ([[名無しさん]]) [10] >>5 [CODE(DOMi)@en[[[Element]]]] を [CODE(DOMi)@en[[[DocumentType]]]] の[[兄]]とすることはできません ([CODE(DOMc)@en[[[HIERARCHY_REQUEST_ERR]]]])。 ([[名無しさん]]) [11] [[Opera]] は [CODE(DOMm)@en[[[insertBefore]]]] の [CODE(DOMp)@en[[[refChild]]]] に [CODE(DOMi)@en[[[DocumentType]]]] を追加することができません ([CODE(DOMc)@en[[[NOT_FOUND_ERR]]]])。 ([[名無しさん]]) [12] >>11 ちなみに、 [CODE(DOMi)@en[[[DocumentType]]]] が最初の[[子節点]]でなければならないということでもないみたいです ([[文書型宣言]]の前に[[注釈宣言]]があればそれが最初の[[子節点]]になります。その状態で [CODE(DOMi)@en[[[DocumentType]]]] を [CODE(DOMp)@en[[[refChild]]]] に指定して [CODE(DOMm)@en[[[insertBefore]]]] してもやっぱりうまくいきません)。 ([[名無しさん]]) [13] >>11 ちなみに、 [CODE(DOMi)@en[[[DocumentType]]]] が最初の[[子節点]]でなければならないということでもないみたいです ([[文書型宣言]]の前に[[注釈宣言]]があればそれが最初の[[子節点]]になります。その状態で [CODE(DOMi)@en[[[DocumentType]]]] を [CODE(DOMp)@en[[[refChild]]]] に指定して [CODE(DOMm)@en[[[insertBefore]]]] してもやっぱりうまくいきません)。 ([[名無しさん]]) [14] [[DOM水準2]]の[[正誤表]]と[[DOM水準3]]によれば、 [CODE(DOMp)@en[[[newChild]]]] の [CODE(DOMa)@en[[[parentNode]]]] が[[読取専用]]なら [CODE(DOMc)@en[[[NO_MODIFICATION_ALLOWED_ERR]]]] となります。 ([[名無しさん]]) [15] [CODE(DOMi)@en[[[DocumentFragment]]]] を [CODE(DOMp)@en[[[newChild]]]] としたとき何が返されるのかよくわかりません。 ([[名無しさん]]) [16] [CODE(DOMa)@en[[[ownerDocument]]]] が [CODE(IDL)@en[[[nullll]]]] の [CODE(DOMi)@en[[[DocumentType]]]] を [CODE(DOMp)@en[[[newChild]]]] としたときどうなるのかよくわかりません。 ([[名無しさん]]) [17] [[DOM水準3]]によると [CODE(DOMi)@en[[[Document]]]] に2つ目の [CODE(DOMi)@en[[[DocumentType]]]] や [CODE(DOMi)@en[[[Element]]]] を [CODE(DOMm)@en[[[appendChild]]]] しようとするのは [CODE(DOMc)@en[[[HIERARCHY_REQUEST_ERR]]]] です。 ([[名無しさん]]) [18] [[DOM水準2]][[正誤表]]と[[DOM水準3]]によると自分に自分を [CODE(DOMm)@en[[[appendChild]]]] しようとしたら [CODE(DOMc)@en[[[HIERARCHY_REQUEST_ERR]]]] です。 ([[名無しさん]]) [19] >>15 [[Firefox]] 1.5、[[Opera]] 9 TP1、 [[WinIE 6]] ([[Windows XP]] [[SP2]]) では [CODE(DOMi)@en[[[DocumentFragment]]]] が返されるようです。 ([[名無しさん]]) [20] [CITE[''''''[''''''whatwg'''''']'''''' Stat. on frequency of node insertion without children]] ( ([TIME[2011-12-03 17:30:53 +09:00]] 版))