4

例如,假设我这样做:

var otherWindow = window.open("otherfile.html", "_blank");

然后过了一段时间:

if(otherWindow.document && otherWindow.document.body) {
 var elem = document.createElement("DIV")
 elem.innerHTML = "hello here I am!";
 otherWindow.document.body.appendChild(elem);
}

这似乎工作正常,但我很好奇 elem 是使用第一个窗口的文档创建但附加到第二个窗口的文档这一事实是否有任何缺点。这是一个很大的禁忌吗?

假设我有这样做的理由,并且(因为元素实际上是由库代码创建的)使用“otherWindow.document”创建元素并不是干净/微不足道的。

4

2 回答 2

2

我认为您至少在某些浏览器中会没事,但我认为可能会有例外,我不知道 DOM 规范对此有何评论。我建议在您的目标浏览器中尝试一下。

还有一种 DOMimportNode()方法具有相当广泛的支持并且专为该任务而设计,因此似乎是最安全的选择,也是我推荐的方法。

于 2013-10-01T22:07:06.647 回答
1

除了可能不会受到伤害的变量访问和潜在的 DOM 问题之外,在哪里创建元素只是在哪里添加元素并不重要。

于 2013-10-01T22:05:02.320 回答