Адресация Javascript DOM в элемент DOM подокна

#dom

#dom

Вопрос:

Учитывая этот скриншот рендеринга DOM в Firefox, мне интересно прочитать этот выделенный элемент вниз по пути и записать в атрибут «hidden» на 3 строки выше него. Я не знаю номенклатуру иерархии Javascript для прохождения через это подокно с индексом «0», которое отображается в первой строке под окном с индексом «3», которое является корневым контекстом иерархии моего кода. Этот элемент innerText, который мне нужен, больше нигде не отображается в DOM, по крайней мере, я могу найти … и я искал и искал его в другом месте.

Просто глядя на этот DOM, я бы сказал, что я мог бы обратиться к этой информации следующим образом: Window[3].Window[0].contentDocument.children[0].innerText (что интересно, без тела).

То, как появился этот DOM, немного странно, Window[0] поскольку он генерируется следующим фрагментом кода, расположенным внутри события onload. Это создает элемент мягкого встраивания, так что Window[0] и все внутри является временным. FWIW, элемент EMBED — это просто способ для скрипта разгрузить задачу асинхронного извлечения следующего имени файла .mp4 с сервера во время воспроизведения предыдущего файла .mp4, чтобы он был готов мгновенно onended ; для его получения не требуется блокировка.

           if (elmnt.contentDocument.body.children[1] == 'undefined' || elmnt.contentDocument.body.children[1] == null)
       {
               var mbed = document.createElement("EMBED");
               var attsrc =  document.createAttribute("src")
               mbed.setAttributeNode(attsrc);
               var atttyp =  document.createAttribute("type")
               mbed.setAttributeNode(atttyp);
               var attwid =  document.createAttribute("width")
               mbed.setAttributeNode(attwid);
               var atthei =  document.createAttribute("height")
               mbed.setAttributeNode(atthei);
               elmnt.contentDocument.body.appendChild(mbed);
       }
     elmnt.contentDocument.body.children[1].src=elmnt.contentDocument.body.children[0].currentSrc   '?nextbymodifiedtime'
     elmnt.contentDocument.body.children[1].type='text/plain'
 

Я знаю лучше, чем думать Window[3].Window[0]...... , что это действительно так. Может кто-нибудь подсказать мне, как обратиться к шагам DOM в contentDocument этого Window[0] ? По мере разработки кода будет существовать еще несколько таких программных окон из элементов soft EMBED, так что имейте это в виду. Спасибо!

введите описание изображения здесь

Ответ №1:

elmnt.contentWindow[0].document.children[0].innerText делает трюк