<iframe>和它的文档之间的关系是一种方式吗?

gdo*_*ica 3 javascript iframe jquery dom dom-traversal

你可以获得具有属性的a document对象的节点<iframe>contentDocumentHTMLIFrameElement

但我找不到<iframe>退出节点的方法.它和它的文件
之间的关系<iframe>只是一种方式吗?
如果是的话,为什么?

非工作DEMO:

var iframe = document.getElementById('iframe');
var doc = iframe.contentDocument || iframe.contentWindow.document;

var div = doc.getElementsByTagName('div')[0];

console.log('Did we find the iframe? ' + ($(div).closest('iframe').length > 0));?
// Output: "Did we find the iframe? false"
Run Code Online (Sandbox Code Playgroud)

Esa*_*ija 5

iframe元素是在不同的document(这是在主网页的元素),比div元素(这是在iframe页面中的元素).

你可以得到这样的iframe元素:

iframe.contentWindow.frameElement === iframe

或者在iframe脚本环境中:

window.frameElement

或使用 div

div.ownerDocument.defaultView.frameElement === iframe

更新的演示