获取给定ID的iframe

时间:2013-10-24 12:16:23

标签: javascript dom iframe

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

EDIT。我试图获取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;
}

2 个答案:

答案 0 :(得分:1)

看到这个答案:

Access iframe elements in JavaScript

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

希望这会有用。

答案 1 :(得分:0)

var el = document.querySelector('#test');

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

readmore:http://slides.html5rocks.com/#new-selectors