Как заставить страницу взаимодействовать с фоновой страницей?

В моем расширении Chrome есть фоновая страница, которая выполняет скрипт на текущей вкладке.

Сценарий изменяет элементы на текущей вкладке, добавляя код к существующим элементам для вызова функции 'myFunction', определенной на фоновой странице, когда происходят 'onClick' события. Проблема в том, что выдается исключение, что 'myFunction' не определено на текущей вкладке.

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

Заранее спасибо!


person yossharel    schedule 29.09.2013    source источник


Ответы (2)


Фоновая страница выполняется в независимом контексте, поэтому ее функции не могут выполняться напрямую в текущей открытой вкладке.

Вам нужен скрипт содержимого, выполняемый на всех вкладках, которая затем обменивается данными с фоновой страницей, используя механизм передачи сообщений.

Без дополнительной информации трудно помочь вам больше.

person Métoule    schedule 29.09.2013

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

var bgPage = chrome.extension.getBackgroundPage();
bgPage.myFunction();
person shrunyan    schedule 30.09.2013