如何检查元素是否在 iframe 内

use*_*569 1 html javascript iframe

假设您有一个 DOM 节点,并且您想知道它是否位于 iframe 内。一种方法是检查它的父链,看看您是否在到达父窗口之前到达了 iframe。但是,我想知道是否有更快的方法来做到这一点。

Fel*_*ing 5

您可能会检查节点的ownerDocument属性

if(node.ownerDocument !== document) {
    // node must be inside iframe
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 [`document.defaultView`](https://developer.mozilla.org/en-US/docs/DOM/document.defaultView) 和 [`window.frameElement`](https://developer.mozilla. org/en-US/docs/DOM/window.frameElement):`node.ownerDocument.defaultView.frameElement`(虽然在 IE 及以下似乎不起作用)。 (3认同)
  • 不幸的是,如果您正在运行的脚本也在 iFrame 中,这将不起作用。这只会指示元素是否与脚本在同一个文档中。 (3认同)