您可以使用HTMLIFrameElement
document
属性获取<iframe>
contentDocument
个对象的节点
但我无法找到让<iframe>
退出节点的方法
<iframe>
和它的文件之间的关系只是一种方式吗?
如果是,为什么?
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"
答案 0 :(得分:5)
iframe
元素与document
元素不同div
(它是主页面中的元素)(它是iframe页面中的元素)。
您可以像这样获取iframe
元素:
iframe.contentWindow.frameElement === iframe
或者在iframe
脚本环境中:
window.frameElement
或使用div
div.ownerDocument.defaultView.frameElement === iframe
答案 1 :(得分:0)
事情是,对于(div)
行中的console.log
,它们是框架的一部分,他们不知道它们在框架中,因此.closest('iframe')
将为空。