如何访问iframe元素?

Iva*_*van 3 javascript iframe

当您在页面中循环遍历所有iframe时,如下所示:

HTML:

<ul>
    <li id="a"><iframe src="..." /></li>
    <li id="b"><iframe src="..." /></li>
    <li id="c"><iframe src="..." /></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

JS:

    for (var i = 0;  i < window.frames.length;  i++) {
        if (window.frames[i].getName() == selector) {
            frame_item = ????
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何获取<iframe>的DOM元素?或者按照示例,如何获取循环内<li>项的ID?

Jan*_*fer 5

更新的答案.

window.frames直接引用IFRAME上下文(iframe的window对象).AFAIK你不能通过这种方式获得IFRAME对象.您可以通过window.frames [0] .myVar访问IFRAME的变量.

要使用所有IFRAME节点/对象:

var iframes = document.getElementsByTagName('iframe'); //all iframes on page
for(var i=0; i<iframes.length; i++){
    alert(iframes[i].parentNode.id); // LI.id
    alert(iframes[i].contentWindow.myVar); //iframe's context
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以将id分配给UL元素和

var ul = document.getElementById('ul_id');
var iframes = ul.getElementsByTagName('iframe'); //all iframes in UL
...
Run Code Online (Sandbox Code Playgroud)