Как получить доступ к элементу iframe? - PullRequest
3 голосов
/ 07 октября 2011

Когда у вас есть цикл по всем элементам 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;
        }
    }

Как я могу получить элемент DOM для

Ответы [ 3 ]

5 голосов
/ 07 октября 2011

ОБНОВЛЕНО ответ.

window.frames ссылается непосредственно на контекст IFRAME (объект окна iframe). AFAIK, вы не можете получить объект IFRAME таким способом. Вы можете получить доступ к переменным IFRAME через window.frames [0] .myVar .

Чтобы получить все узлы / объекты 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
}

В качестве альтернативы вы можете назначить идентификатор элементу UL и

var ul = document.getElementById('ul_id');
var iframes = ul.getElementsByTagName('iframe'); //all iframes in UL
...
1 голос
/ 07 октября 2011

Чтобы получить элементы из iframe, используя jquery:

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

Обновление

$("ul li").each(function(){
      $("iframe", this).contents().find(*element*);
});
0 голосов
/ 07 октября 2011

Я бы настоятельно рекомендовал использовать библиотеку 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());
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...