- From: Anne van Kesteren <notifications@github.com>
- Date: Tue, 16 Apr 2019 07:22:11 -0700
- To: whatwg/dom <dom@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/dom/pull/755/review/227222588@github.com>
annevk commented on this pull request. Thank you for starting on this so quickly! I think this needs a slightly different approach, which I've tried to outline inline. Basically what I'd like to see is for this to build upon the same primitive `innerHTML` and `textContent` use, but it'll need some additional checks as the input isn't necessary restricted to Text and Element nodes as it is with those APIs. > @@ -2839,6 +2839,7 @@ interface mixin ParentNode { [CEReactions, Unscopable] void prepend((Node or DOMString)... nodes); [CEReactions, Unscopable] void append((Node or DOMString)... nodes); + [CEReactions, Unscopable] void replaceContents((Node or DOMString)... nodes); I think per the discussion we ended up with `replaceChildren()` as a name, as "contents" doesn't always refer to nodes. Did I miss something? > @@ -2878,6 +2879,15 @@ Element includes ParentNode; the <a>node tree</a> are violated. <!-- "NotFoundError" is impossible --> + <dt><code><var>node</var> . <a method for=ParentNode lt="replaceContents()">replaceContents</a>(<var>nodes</var>)</code> + <dd> + <p>Inserts <var>nodes</var> after the <a>last child</a> of <var>node</var>, while replacing This needs rewording. > @@ -2925,6 +2935,45 @@ must run these steps: <li><p><a>Append</a> <var>node</var> to <a>context object</a>. </ol> +<p>The <dfn method for=ParentNode><code>replaceContents(<var>nodes</var>)</code></dfn> method, when invoked, +must run these steps: + +<ol> + <li><a for=/>Remove</a> all + <var>parent</var>'s <a>children</a>, in + <a>tree order</a>, with the + <i>suppress observers flag</i> set. I think we should strive to use the https://dom.spec.whatwg.org/#concept-node-replace-all primitive here, which would take care of most of the work, preceded by a call to https://dom.spec.whatwg.org/#converting-nodes-into-a-node. And I guess we need to run https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity as well. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/dom/pull/755#pullrequestreview-227222588
Received on Tuesday, 16 April 2019 14:22:33 UTC