2016-09-07 113 views
13

Document.importNode in specificationDocument.importNode VS Node.cloneNode(实际的例子)

Node.cloneNode in specification

这两种方法同样的工作。请给我一个真实的例子,我可以看到这些方法之间的区别。

+4

在现代浏览器中,您可能看不到差异(显然,它们在不同的界面上定义除外)。历史上,在DOM中,importNode用于复制不同文档中的节点,而cloneNode用于复制同一文档中的节点,但DOM4消除了区别,因为区别没有有用的效果。 – Alohci

回答

11

Alohci是正确的:自web compatibility forced the browsers to implicitly adoptNode() before inserting a node into another document以来没有太大区别。

您将克隆节点到新文档之前,有一个区别:由cloneNode(original)返回的节点的所有者文件是一样的原始节点,并在新的文件,如果你打电话newDocument.importNode(original)。如果您使用ownerDocument或相关属性(如baseURI),则可以看到此差异。

但是,如果您在原始节点所属的相同文档上调用importNode,则没有任何区别。