[3] 要素依存の clone の処理がいくつかあり、 cloning steps と呼ばれています。
[19] Element
を deep
= false
で cloneNode
すると、既定属性が自動的に作られるのかは明確ではありません。
[20] UserDataHandler
がいつ呼び出されるのかはよくわかりません。
各節点が複製される度に呼ばれるのか、それとも全節点が複製されてから順に呼んでもいいのか。
[21] Firefox 3.1 for developers - MDC ( 版) <https://developer.mozilla.org/ja/Firefox_3.1_for_developers#.E6.96.B0.E3.81.97.E3.81.8F.E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88.E3.81.95.E3.82.8C.E3.81.9F.E6.A9.9F.E8.83.BD_2>
HTML ノードでの cloneNode ( bug 42976 )。
[22] IEにおけるcloneNodeの問題点 - dhrnameの開発日誌 ( 版) <http://d.hatena.ne.jp/dhrname/20080621/p1>
DOMのcloneNodeはノードを複製できますし、IEもそれに従っています。しかしながら、IEでは、setAttributeなどで、後から付け足された属性は複製しない特徴を持っています。
[18] Returns a duplicate of the node, i.e. serves as a generic
copy constructor for nodes.
- The duplicate node has no parent, i.e. <A::Node.parentNode> is <DOM::null>. <SRC::DOM1, DOM2, DOM3>
- The duplicate node has no user data, i.e. user data associated to the node is not carried over. However, if any <IF::UserDataHandlers> has been specified along with the associated data, those handlers will be called with the appropriate parameters before the method returns. <SRC::DOM3>
- If the node is an <IF::Element>, all attributes and their values, including those representing defaulted attributes (i.e. attributes whose <A::Attr.specified> are <DOM::false>), but the method does not copy any children it contains unless it is a deep clone (i.e. <P::deep> is <DOM::true>). <SRC::DOM1, DOM2, DOM3>
- Cloning an <IF::Attr> directly, as oppsed to be cloned as part of an <IF::Element> cloning operation, returns a specified attribute (i.e. its <A::Attr.specified> is set to <DOM::true>). <SRC::DOM1, DOM2, DOM3>
- Cloning an <IF::Attr> always clones its children, since they represent its value, no matter whether this is a deep clone or not. <SRC::DOM3>
- Cloning an <IF::tx|EntityReference> automatically constructs its subtree if a corresponding <IF::tx|Entity> is available, no matter whether this is a deep clone or not. <SRC::DOM3> - Cloning an <IF::Attr> always clones its children, since they represent its value, no matter whether this is a deep clone or not. <SRC::DOM3>
- Cloning an <IF::tx|EntityReference> automatically constructs its subtree if a corresponding <IF::tx|Entity> is available, no matter whether this is a deep clone or not. <SRC::DOM3>
- Cloning any other type of node simply returns a copy of the node.
<SRC::DOM1, DOM2, DOM3>
- Cloning <IF::Document>, <IF::tx|DocumentType>, <IF::tx|Entity>, <IF::tx|Notation> nodes is implementation dependent. <SRC::DOM1SE, DOM2, DOM3>
- Cloning an immutable subtree results in a mutable copy, but the children of an <IF::tx|EntityReference> clone are read-only. <SRC::DOM2, DOM3> - Cloning <IF::Document>, <IF::tx|DocumentType>, <IF::tx|Entity>, <IF::tx|Notation> nodes is implementation dependent. <SRC::DOM1SE, DOM2, DOM3>
- Cloning an immutable subtree results in a mutable copy, but the children of an <IF::tx|EntityReference> clone are read-only. <SRC::DOM2, DOM3>
- Cloning a node does not copy the event listeners attached to it.
<SRC::DOM2 Events, DOM3 Events>
{NOTE:: <IF::UserDataHandler>s are prohibitted to throw exceptions; if a <IF::UserDataHandler> that is registered to the node being cloned throws an exception, then the result of the method is undefined.
NOT_SUPPORTED_ERR
:
The node is of type <IF::Document>, <IF::tx|DocumentType>,
<IF::tx|Entity>, or <IF::tx|Notation> and the implementation does not support cloning that type of node. <SRC::DOM1SE>
Only in DOM1SE; they are implementation dependent in DOM1SE, DOM2, and DOM3.
[23] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=3853&to=3854>
[25] [whatwg] cloneNode and HTML elements ( ( 版)) <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/022960.html>
[26] [whatwg] cloneNode and HTML elements ( ( 版)) <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/022969.html>
[1] Web Applications 1.0 r6423 DOM Core convergence (cloning) ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=6422&to=6423>
[24] IRC logs: freenode / #whatwg / 20120514 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20120514#l-223>
[27] Sadness. (Default importNode() and cloneNode() to false.) https://www.w3... · 70fdc5f · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/70fdc5f9030c22c5ceca9e875e06f8b305529ef8>
[12] Define Request/Response clone() methods. Give up on structured clones fo... · ae663b5 · whatwg/fetch ( ( 版)) <https://github.com/whatwg/fetch/commit/ae663b597a72ddd16430bc8ecb4ab566d6bf4714>
[13] Tree was incorrectly created when cloning and extracting a Range · 4b102a2 · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/4b102a2ba6af3b69244b551cc675dabc9fceb93e>
[14] Range clone algorithm did not set clone children flag where it had to ht... · 5fc973c · whatwg/dom ( ( 版)) <https://github.com/whatwg/dom/commit/5fc973c1d2fda9c92e43dba9c946eba389f8546c>
[28] Make cloning more explicit regarding attributes. Fixes #30. · whatwg/dom@39e6a33 ( 版) <https://github.com/whatwg/dom/commit/39e6a33785b33649ef839d8ad355461a57413963>
[29] Define copying attributes since @domenic almost called me lazy. · whatwg/dom@1d24476 ( 版) <https://github.com/whatwg/dom/commit/1d24476e7faf715bd0edd1f28351cfd8f32e1025>
[16] IRC logs: freenode / #whatwg / 20151021 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20151021>
[30] Make cloneNode() throw for ShadowRoot objects · whatwg/dom@02ec9c7 ( 版) <https://github.com/whatwg/dom/commit/02ec9c7e52cb5a09d4cf7d14a583c635ea6dc38d>
[31] Add support for custom elements · whatwg/dom@7f63535 ( 版) <https://github.com/whatwg/dom/commit/7f63535da39a1cbf7f8f68563abc6f05f760990a>
[32] Add [CEReactions] annotations to mutating methods · whatwg/dom@3cd02d1 ( 版) <https://github.com/whatwg/dom/commit/3cd02d139c159a31fbb400e03932652c72fc7812>
[33] Make Attr inherit from Node again (annevk著, ) <https://github.com/whatwg/dom/commit/625a0747f137454c155a7b577a9e45be1aa35a34>
[34] Add cloning steps for textarea (domenic著, ) <https://github.com/whatwg/html/commit/957fd0c91c6ee3abd77538be3a2b4c5531754f62>
[36] Copy the origin pointer when cloning a document (annevk著, ) <https://github.com/whatwg/dom/commit/623f655c9f58039fa6b30e0f65ee325700e8b977>
[38] Change handling of is="" in element creation and cloning (domenic著, ) <https://github.com/whatwg/dom/commit/fc601be94e75427c3eb35d63ada0f6dc41f9f344>
[37] Change handling of is="" in element creation and cloning by domenic · Pull Request #566 · whatwg/dom () <https://github.com/whatwg/dom/pull/566>
[39] Hide nonce content attribute values (mikewest著, ) <https://github.com/whatwg/html/commit/19f5cce801550d278b9459f8c4797f9f86aae864>
[40] Define cloning steps for an select element · Issue #644 · whatwg/dom () <https://github.com/whatwg/dom/issues/644>