Расширение Chrome - прослушиватель событий для добавленного кода - PullRequest
2 голосов
/ 31 января 2012

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

Я хочу добавить прослушиватель событий, чтобы при нажатии кнопки ответа запускалась функция, чтобы я мог отправитьданные в поле ввода текста на моем сервере.Насколько я понимаю, когда код добавлен на страницу, он больше не имеет доступа к script.js, поэтому он не может получить доступ к прослушивателю событий.Есть ли альтернатива?

Изображение моего графического интерфейса: http://www.filedump.net/index.php?pic=eventlistenermoot1328028688.jpg

1 Ответ

7 голосов
/ 31 января 2012

Страница, в которую вы вводите код, помещается в «песочницу» из скриптов содержимого.Однако ваши скрипты контента имеют полный доступ к странице DOM, включая события.Это означает, что вы можете добавить прослушиватель событий к добавляемым элементам.Вы должны добавить их ненавязчиво, чтобы скрипт контента мог затем отправить сообщение на фоновую страницу:

Скрипт контента:

var html = document.createElement('div');
    html.innerHTML = '<input id="clickMe" type="button" value="Click Me" />';
document.body.appendChild(html);

document.getElementById('clickMe').addEventListener('click', function() {
    // do stuff
});
...