Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Поиск всех родительских "iframe". JS/jQuery (https://javascript.ru/forum/jquery/60962-poisk-vsekh-roditelskikh-iframe-js-jquery.html)

Alex241 29.01.2016 01:18

Поиск всех родительских "iframe". JS/jQuery
 
Всем привет!
Пишу небольшой парсинг страничек в Chrome, буду рад любой помощи.
Для большего понимания и наглядности приведу не большой пример.

Имеем вот такое дерево к примеру:

<html>  // В документе содержится несколько фреймов
  <head></head>
  <body>

    <iframe>#dcument</iframe> 	// И в каждом фрейме тоже имеются свои фреймы, а в тех естественно свои ;)
    <iframe>#dcument</iframe> 
		
    <iframe>
      <html>
        <body>
          <iframe>#dcument</iframe> 				
          <iframe>#dcument</iframe> 				
          <iframe>
            #dcument
            <html>
              <body>
                <iframe>#dcument</iframe> 				
                <iframe>#dcument</iframe> 	
                <iframe>
                  #dcument
                  <html>
                    <body>
                      <div></div>
                      <div></div>
                      <div></div>
                    </body>
                  </html>
                </iframe> 
              </body>
            </html>
          </iframe>
        </body>
      </html>
    </iframe>    

  </body>
</html>


В переменную "all_div" я получаю все элементы "div" во всех последних фреймах:

var all_div = $("iframe").contents().find("iframe").contents().find("iframe").contents().find("div"); // это для наглядности

А вот теперь сама суть проблемы!
Мне необходимо получить все родительские "iframe" каждого найденного "div", например:
var par_ifrm = all_div.eq(0).parents("iframe");  // Но он ищет только в пределах документа в котором находится конкретный "div"

Я наивно полагал, что будет что-то такое же простое, как получение всех "div" элементов во вложенных фреймах с помощью метода "find().contents()", но в обратном направлении. Но как же я ошибался :(
Я пробовал ".parents()" и ".closest()", но они ищут только в пределах документа в котором находится конкретный "div" и как мне заставить хоть одного из них перейти за пределы документа я не разобрался, куда я только не пробовал лепить этот бедный "contents()" в надежде, что он поможет так же, как помог выше, но увы. И тут меня настигла грусть, печаль :cray:

Братцы выручайте, кто что знает, JS или jQuery, не принципиально!:help:

Я уже начинаю думать, что в том направлении в котором я размышляю, способа и вовсе не существует и мне необходимо всех "iframe" предков записывать в массивы, ещё на стадии поисков "div" элементов при помощи ".filter()" например.

PS. Я в курсе про безопасность браузеров к доступам вложенных фреймов где нужны одинаковые домены, протоколы и т.д. с этим всё в порядке!


Часовой пояс GMT +3, время: 10:03.