将元素添加到窗口的文档而不是创建它的元素有什么害处吗?
Is there any harm adding an element to a window's document that is not the one that it was created with?
例如,假设我这样做:
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"创建元素并不干净/微不足道。
我认为
你至少在某些浏览器中会没问题,但我认为可能有例外,我不知道 DOM 规范对此有何说明。我建议在您的目标浏览器中尝试一下。
还有 DOM importNode()
方法,它得到了相当广泛的支持,并且是为该任务而设计的,所以似乎是最安全的选择,也是我推荐的选择。
除了变量访问和可能不会受到伤害的潜在 DOM 问题之外,在何处创建元素并不重要,只需在附加它的位置即可。
相关文章:
- DOM元素和angular元素之间的主要区别是什么
- 列出没有 mysql 的元素的最佳方法是什么
- 有什么方法可以在下一个元素上进行追加吗
- 什么是“;(''+元素+'')“;意思是
- 什么对性能更好:每个元素的事件或一个具有委派的事件
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 什么'这是返回元素的好方法's路径
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- 这两种使用 jQuery 追加 DOM 元素的方法有什么不同
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 让 jquery 为 ajax 添加的元素工作的最佳方法是什么?
- 创建具有关联 dom 元素的 javascript 对象的首选方法是什么
- 将元素转换为可丢弃区域的要求是什么
- 将ng模型转发到指令中的元素的正确方法是什么
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 什么'这是ES6中制作重复元素列表的等效方法
- 什么是输入元素上的innerHTML
- 通过它访问HTML元素's id DIRECTLY-这里发生了什么
- 什么'这段用javascript移动css元素的代码错了
- 使用 V8 从密集数组中删除元素的最佳方法是什么