#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
делает трюк