Найти нисходящий элемент по идентификатору через кадры - PullRequest
1 голос
/ 30 июня 2011

Предполагая, что все кадры находятся в одном домене, мне нужно начать с данного узла (или документа) и искать элемент с заданным идентификатором.Если он не найден в текущем документе, мне нужно рекурсивно (в ширину) искать все потомки iframe.

Если я не пропустил кое-что, я уверен, что мог бы написать эту функцию, но я уверен, что кто-то уже сделал это.

Я не использую jQuery в своем приложении,так что, хотя это хорошо упомянуть для других читателей SO, это не поможет мне.Однако я использую Prototype, и можно предположить, что на всех потомках iframes будет включен прототип.

Любой совет?

1 Ответ

5 голосов
/ 30 июня 2011

Я думаю, вы можете получить это рекурсивно, как это:

function findElement(wdw, id)
{
    var el = wdw.document.getElementById(id);
    if(el) return el;
    for(var i=0; i<wdw.frames.length; i++)
    {
        var el = findElement(wdw.frames[i].window, id);
        if(el) return el;
    }

    return null;
}

и назовите это так:

findElement(window, "aa");

вот ссылка jsFiddler: http://jsfiddle.net/QxL7z/2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...