2013-09-23 2 views
1

Мне нужно знать, когда на странице создается определенный iframe. IFrame создается с помощью JS, когда пользователь нажимает кнопку и может быть создан и уничтожен много раз.обнаружить динамически загруженный iframe

ОБНОВЛЕНО: JS, который создает iframe, является частью исходной страницы, поэтому я не могу изменять его или обращаться к его переменным или функциям, а хром-расширения изолированы песочницей.

У меня нет контроля над содержимым iframe и не может вводить в него никакой JS. Я могу только ввести JS на главную страницу, но в противном случае не иметь другого контроля.

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

Для Я делаю это:

window.setInterval(function() { 
    $("iframe").each(function(){ 
    if ($(this).attr('id')) { 
     if ($(this).attr('id') == "iframe_id") { 
     //my code 
     } 
    } 
    }); 
}, 1000); 

, но я бы очень хотел избежать setInterval из-за проблем с производительностью. Это вообще возможно?

+1

«iframe создается с помощью JS, когда пользователь нажимает кнопку« Значит, вы знаете, когда создается iframe. –

ответ

0

А. Вольф, вероятно, ответил на ваш вопрос уже («The IFrame создается с помощью JS, когда пользователь нажимает кнопку» Таким образом, вы знаете, когда создаются IFrame ").

Если вы все еще не уверены, что делать ... хорошо:

интервал не является хорошей идеей - но вы, наверное, поняли, что из себя попробовать метод на() это должно помочь

$("iframe").on("click", function() { 
    alert("This is my iframe!"); 
}); 

Если у вас возникли проблемы... выбирая содержимое iframe, возможно, вам стоит попробовать получить доступ к таким элементам, как th является:

$("#iframe-id").contents().find(".what-i-am-looking-for").hide(); 

Документация JQuery будет очень полезно, если это то, что вы ищете:

http://api.jquery.com/on/

http://api.jquery.com/contents/

Ура!

+0

Я понимаю комментарий о нажатии кнопки, проблема заключается в том, что это создается JS, который не под моим контролем, когда я добавляю JS-код с расширением Chrome на странице, у меня есть только доступ к DOM страницы и мой JS, поэтому я не могу иметь доступ к другим функциям или событиям JS, загруженным самой страницей. – nucka

Смежные вопросы