如何访问iframe元素?

时间:2011-10-07 10:17:56

标签: javascript iframe

当你在这样的页面中循环遍历所有iframe:

HTML:

<ul>
    <li id="a"><iframe src="..." /></li>
    <li id="b"><iframe src="..." /></li>
    <li id="c"><iframe src="..." /></li>
</ul>

JS:

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

如何获取&lt;的DOM元素?的iframe&GT ;?或者按照示例,我如何获得&lt;的ID?李&GT;循环中的项目?

3 个答案:

答案 0 :(得分: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
}

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

var ul = document.getElementById('ul_id');
var iframes = ul.getElementsByTagName('iframe'); //all iframes in UL
...

答案 1 :(得分:1)

使用jquery从iframe中获取元素:

$("iframe_id_or_class").contents().find(*element*)

<强>更新

$("ul li").each(function(){
      $("iframe", this).contents().find(*element*);
});

答案 2 :(得分:0)

我强烈建议使用JQuery Javascript库来编写Javascript,因为它使整个过程变得更容易,但是对于选择器来说非常容易,因为你可以使用CSS选择器。 所以在这种情况下你会使用

var id = [];

$("ul li").each(function(){
      id.push($(this).attr("id"));
});

修改

这是你需要的吗?

$("iframe").each(
    function(){
         if($(this).attr("name")==desired_name)
             alert($(this).parent());
    }
);