как внедрить панель iframe в расширение Google Chrome и добавить событие клика внутри iframe?

Я сделал расширение, которое вводит iframe на текущую веб-страницу, используя Content-скрипты:

$('body').append('<iframe src="' + chrome.extension.getURL('panel.html') + '" frameborder="0" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; z-index: 2147483647; position: fixed; width: 100%; left: 0px; bottom: 0px; height: 100px; display: block; visibility: visible; outline-style: none; outline-width: 0px; outline-color: rgb(0, 0, 0); " id="GE_Panel"></iframe>');

Я могу просматривать iframe на веб-странице, но я не знаю, как добавить событие щелчка для элемента, который находится внутри iframe...


person Sagi    schedule 12.01.2011    source источник


Ответы (2)


Вам нужно дождаться загрузки iframe, а затем получить доступ к элементам внутри него:

E.g.

$('<iframe ... />').load(function() {
    var doc = $(this).contents();
    doc.find('#yourLink').click(...);
}).appendTo('body');

Ссылка: .contents

Не знаю, как Chrome обрабатывает это для расширений, но может случиться так, что у вас будет политика того же происхождения проблема.

person Felix Kling    schedule 09.03.2011

Если вы можете управлять panel.html, просто поместите js, который обрабатывает событие клика, в panel.html.

person Betty    schedule 11.07.2011