当node.ownerDocument不是window.document时会发生什么?

11

我正在查看MDNW3C资源,以弄清楚什么是ownerDocument以及它是如何工作的?

在任何情况下,我测试过node.ownerDocument == window.document。那么,在什么情况下这个属性不等于窗口文档window.document呢?

你能解释一下吗?


1
我也有同样的问题! - Pete Alvin
1个回答

9

一种方法是如果节点是从一个iframe或次要浏览器窗口中获取的。

另一种方法是如果它是从通过AJAX获取的HTTP源的XML文档中的节点。


第一个场景看起来不对。在另一个窗口/iframe中,窗口对象是不同的。 - Mohsen
1
@Mohsen: 没错,确切地说。因此,如果外部文档有一个名为 iframe 的JS变量,指向 iframe,那么外部文档将看到 iframe.contentWindow.document.getElementsByTagName('body')[0].ownerDocument === iframe.contentWindow.document,而不是 iframe.contentWindow.document.getElementsByTagName('body')[0].ownerDocument === window.document,因为 iframe 有一个不同的 window 对象(外部文档引用为 iframe.contentWindow)。同样地,在辅助浏览器窗口中也是如此。 - ruakh
请问您能解释一下第二种情况吗? - Jessica
@Jessica:是什么样的解释?有什么具体的地方你不理解吗? - ruakh
我以前从未使用过XML文档。我不知道它是什么。 - Jessica
1
@Jessica:啊,对不起,这不是适合那个问题的论坛。我建议你只要谷歌一下“XML”,然后再搜索“XML DOM”。 - ruakh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接