Javascript 如何检查元素是否在iframe中

Javascript 如何检查元素是否在iframe中,javascript,html,iframe,Javascript,Html,Iframe,假设您有一个DOM节点,您想知道它是否位于iframe内部。一种方法是检查它的父链,以查看在到达父窗口之前是否已到达iframe。但是,我想知道是否有更快的方法来执行此操作。您可能可以检查节点的: if(node.ownerDocument !== document) { // node must be inside iframe } 您可能可以检查节点的位置: if(node.ownerDocument !== document) { // node must be insi

假设您有一个DOM节点,您想知道它是否位于iframe内部。一种方法是检查它的父链,以查看在到达父窗口之前是否已到达iframe。但是,我想知道是否有更快的方法来执行此操作。

您可能可以检查节点的:

if(node.ownerDocument !== document) {
    // node must be inside iframe
}

您可能可以检查节点的位置:

if(node.ownerDocument !== document) {
    // node must be inside iframe
}

用你的html写一篇文章。@Sheikheera,这没用。只要知道我从一个突变事件中得到了一个随机DOM节点,我想快速知道它是否在iframe中。你想从父页面检查节点的存在吗?iframe中的任何事件通常不会传播到父文档,那么,您如何获得对iframe中的节点的引用,而不是对来自不同域的iframe的引用呢?还是要测试整个页面是否已加载到iframe中?测试ownerDocument属性可能有效,但如果没有更多信息/示例,就很难判断。@widged:是的,指向jQuery解决方案的链接是有意义的,但前两个指向测试self和top的链接在此上下文中没有用处。请使用html创建一个链接。@Sheikheera这没有帮助。只要知道我从一个突变事件中得到了一个随机DOM节点,我想快速知道它是否在iframe中。你想从父页面检查节点的存在吗?iframe中的任何事件通常不会传播到父文档,那么,您如何获得对iframe中的节点的引用,而不是对来自不同域的iframe的引用呢?还是要测试整个页面是否已加载到iframe中?测试ownerDocument属性可能有效,但如果没有更多信息/示例,就很难判断。@widged:是的,jQuery解决方案的链接是有意义的,但前两个指向测试self和top的链接在这种情况下没有用处。谢谢,还有没有快速的方法来获取它所包含的iframe的引用,或者我需要迭代所有iFrame吗?您可以使用and:node.ownerDocument.defaultView.frameElement在IE及以下版本中似乎不起作用。不幸的是,如果您正在运行的脚本也在iFrame中,这将不起作用。这只会指示元素是否与脚本位于同一文档中。谢谢,是否还有一种快速方法可以获取它所在的iframe的引用,或者我是否需要迭代所有iframe?您可以使用and:node.ownerDocument.defaultView.frameElement在IE及以下版本中似乎不起作用。不幸的是,如果您正在运行的脚本也在iFrame中,那么这将不起作用。这将仅指示元素是否与脚本位于同一文档中。