如果您知道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;
}
答案 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');