Сегодня я столкнулся с проблемой, которая слегка волнует меня. Я пишу расширение Chrome для конкретного веб-приложения. Веб-страница представляет собой (обертку) iframe, внутри реальной страницы можно найти, но внутри этого iframes есть еще больше iframe.JQuery - подождите, пока вложенный iFrame закончит загрузку
Чтобы определить, где я нахожусь в приложении, мне нужно прочитать некоторые данные, которые являются двумя глубинами iframe. Я нашел способ, чтобы получить строку, я ищу со следующим:
document.getElementById("firstiframe").contentWindow.document.getElementById("secondiframe").contentWindow.document.getElementById("theelement").innerText;
Здесь проблема в том, как это запускается на выполнение всех необходимых кадры должны существовать. Поскольку secondiframe
загружен после выполнения сценария, он не работает на getElementById("secondiframe")
, поскольку он еще не существует.
Мне показалось, что мне нужно терпеливо дождаться загрузки второго iframe до тех пор, пока я не выполнит поиск. Здесь я не могу прийти дальше первого iframe.
$('#firstiframe').load(function() {
$('#secondiframe').load(function() {
console.log("We made it!");
});
});
Это не сработало, кто-то предложил мне искать что-то вроде этого:
$('#firstiframe').load(function() {
$(this).contents().find('#secondiframe').load(function() {
console.log("We made it!");
});
});
Но это было ни успеха, он никогда не проходит/не совпадает с secondiframe.
Заранее благодарен!
Этот номер все еще не работает, он не проходит вообще. Разве я не могу заставить его работать с чем-то вроде этого? '$ ('# firstframe'). contentWindow.document.GetElementById ('secondiframe'). load' – user3249751
@ user3249751 Хм, что именно вы имеете в виду:« не проходит вообще »? Проверьте мой отредактированный ответ без jsFiddle или что-то, что было бы громоздким, чтобы это произошло. Вы можете смешать jQuery и ванильный Javascript, да, но это не повлияло бы на вашу проблему, что объект, который вы хотите передать обработчику, отсутствует при передаче этого обработчика, вы понимаете? – loveNoHate