[1]
DocumentFragment
節点の
appendChild
, insertBefore
,
replaceChild
メソッドの第1引数に自分自身を指定した場合のテスト
<IW:SuikaCVS:"www/test/dom/document-fragment/">
[2]
Firefox 1.5, Opera 9 TP1 ではいずれも
HIERARCHY_REQUEST_ERR
。
WinIE 6 (Windows XP SP2) ではいずれも成功。
appendChild
と insertBefore
では実行前と変化なしで、 replaceChild
は第2引数に指定した節点が消失。
仕様書が曖昧なので、どちらも悪くはない動作だと思いますが。。。
[3]
appendChild
や insertChild
で Attr
に Node
を追加しようとすると、 nodeType
に関わらず、
NO_MODIFICATION_ALLOWED_ERR
を投げます。HIERARCHY_REQUEST_ERR
を投げます。(名無しさん)
[4]
Opera 9 は DocumentType
を appendChild
や insertBefore
で追加できません
(createDocument
ならおk)。
(名無しさん)
[5]
Firefox 1.5 は DocumentType
を Document
に追加できますが、
別の DocumentType
や
Element
の弟とすることはできません。
(名無しさん)
[6]
>>5 insertBefore
で
Element
の兄とすることもできません。
(名無しさん)
[7]
>>5 他の文書で使われている DocumentType
でも、勝手に adoptNode
されるようです。
(名無しさん)
[8]
Opera 9 は Document
に
Text
や CDATASection
を追加できます。
また、既に Element
があっても更に Element
を追加できます。
(名無しさん)
[9]
>>5 また、 DocumentType
を Element
の前に insertBefore
で追加することもできません
(HIRARCHY_REQUEST_ERR
)。
(名無しさん)
[10]
>>5 Element
を DocumentType
の兄とすることはできません
(HIERARCHY_REQUEST_ERR
)。
(名無しさん)
[11]
Opera は insertBefore
の refChild
に DocumentType
を追加することができません
(NOT_FOUND_ERR
)。
(名無しさん)
[12]
>>11
ちなみに、 DocumentType
が最初の子節点でなければならないということでもないみたいです
(文書型宣言の前に注釈宣言があればそれが最初の子節点になります。その状態で DocumentType
を refChild
に指定して insertBefore
してもやっぱりうまくいきません)。
(名無しさん)
[13]
>>11
ちなみに、 DocumentType
が最初の子節点でなければならないということでもないみたいです
(文書型宣言の前に注釈宣言があればそれが最初の子節点になります。その状態で DocumentType
を refChild
に指定して insertBefore
してもやっぱりうまくいきません)。
(名無しさん)
[14]
DOM水準2の正誤表とDOM水準3によれば、
newChild
の parentNode
が読取専用なら NO_MODIFICATION_ALLOWED_ERR
となります。
(名無しさん)
[15]
DocumentFragment
を
newChild
としたとき何が返されるのかよくわかりません。
(名無しさん)
[16]
ownerDocument
が
nullll
の DocumentType
を newChild
としたときどうなるのかよくわかりません。
(名無しさん)
[17]
DOM水準3によると Document
に2つ目の DocumentType
や
Element
を appendChild
しようとするのは HIERARCHY_REQUEST_ERR
です。
(名無しさん)
[18]
DOM水準2正誤表とDOM水準3によると自分に自分を
appendChild
しようとしたら
HIERARCHY_REQUEST_ERR
です。
(名無しさん)
[19]
>>15 Firefox 1.5、Opera 9 TP1、
WinIE 6 (Windows XP SP2) では
DocumentFragment
が返されるようです。
(名無しさん)
[20] [whatwg] Stat. on frequency of node insertion without children ( ( 版)) <http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-December/034038.html>
[21] Add [CEReactions] annotations to mutating methods · whatwg/dom@3cd02d1 ( 版) <https://github.com/whatwg/dom/commit/3cd02d139c159a31fbb400e03932652c72fc7812>