appendChild

appendChild

[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) ではいずれも成功。 appendChildinsertBefore では実行前と変化なしで、 replaceChild は第2引数に指定した節点が消失。

仕様書が曖昧なので、どちらも悪くはない動作だと思いますが。。。

[3] appendChildinsertChildAttrNode を追加しようとすると、 nodeType に関わらず、

(名無しさん)

[4] Opera 9 は DocumentTypeappendChildinsertBefore で追加できません (createDocument ならおk)。 (名無しさん)

[5] Firefox 1.5 は DocumentTypeDocument に追加できますが、 別の DocumentTypeElementとすることはできません。

(名無しさん)

[6] >>5 insertBeforeElementとすることもできません。 (名無しさん)

[7] >>5 他の文書で使われている DocumentType でも、勝手に adoptNode されるようです。 (名無しさん)

[8] Opera 9 は DocumentTextCDATASection を追加できます。 また、既に Element があっても更に Element を追加できます。 (名無しさん)

[9] >>5 また、 DocumentTypeElement の前に insertBefore で追加することもできません (HIRARCHY_REQUEST_ERR)。 (名無しさん)

[10] >>5 ElementDocumentTypeとすることはできません (HIERARCHY_REQUEST_ERR)。 (名無しさん)

[11] OperainsertBeforerefChildDocumentType を追加することができません (NOT_FOUND_ERR)。 (名無しさん)

[12] >>11 ちなみに、 DocumentType が最初の子節点でなければならないということでもないみたいです (文書型宣言の前に注釈宣言があればそれが最初の子節点になります。その状態で DocumentTyperefChild に指定して insertBefore してもやっぱりうまくいきません)。 (名無しさん)

[13] >>11 ちなみに、 DocumentType が最初の子節点でなければならないということでもないみたいです (文書型宣言の前に注釈宣言があればそれが最初の子節点になります。その状態で DocumentTyperefChild に指定して insertBefore してもやっぱりうまくいきません)。 (名無しさん)

[14] DOM水準2正誤表DOM水準3によれば、 newChildparentNode読取専用なら NO_MODIFICATION_ALLOWED_ERR となります。 (名無しさん)

[15] DocumentFragmentnewChild としたとき何が返されるのかよくわかりません。 (名無しさん)

[16] ownerDocumentnullllDocumentTypenewChild としたときどうなるのかよくわかりません。 (名無しさん)

[17] DOM水準3によると Document に2つ目の DocumentTypeElementappendChild しようとするのは 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>