0

如果知道 iframe 的 ID,如何在页面上选择 iframe DOM 对象?假设页面上可能有多个 iframe,而您不知道有问题的 iframe 的位置,也请不要使用 jQuery 解决方案。我想出了以下内容,但是,我希望它可以更加微不足道。

编辑。我正在尝试获取 DOM 对象,以便可以访问诸如window.frames[0].innerHeight

function getIframe(id) {
    var iframe=null;
    for (var i = window.frames.length - 1; i >= 0; i--) {
        if(window.frames[i].frameElement.id==id){iframe=window.frames[i];break;}
    }
    return iframe;
}
4

2 回答 2

1

看到这个答案:

在 JavaScript 中访问 iframe 元素

window.frames['myIFrame']

编辑:

我在FF和Chrome上做了一些测试,得出以下结论。

window.frames["myFrame"]返回:

    `[object HTMLIFrameElement]` when on FF (v24)
    `[object Window]` when on Chrome (v 30.0.1599.101)

我们可以为HTMLIFrameElement属性制作一个这样的控件contentWindow来获取 iframe Window

var myFrame = (window.frames["myFrame"].contentWindow ? window.frames["myFrame"].contentWindow : window.frames["myFrame"])

这种方式在变量 myFrame 中存储了Window对象。

如果现在我们想要获取 DOM 元素HTMLIFrameElement,我们可以简单地执行以下操作:

var domElement = myFrame.frameElement

希望这会有用。

于 2013-10-24T12:19:23.967 回答
0
var el = document.querySelector('#test');

var matches = el.querySelectorAll('iframe');

阅读更多: http ://slides.html5rocks.com/#new-selectors

于 2013-10-24T12:24:11.820 回答