Отправка сообщения из background.js в контентный скрипт

У меня есть background.js со следующим фрагментом:

chrome.browserAction.onClicked.addListener(toggleStatus);

Сейчас внутри toggleStatus Я хотел бы отправить сообщение в мой контент-скрипт, что что-то случилось. Это возможно?

Или я полностью упускаю суть, это правильный путь?

Это связано с тем, что я хотел бы активировать / деактивировать свое расширение без необходимости перезагрузки страницы.

1 ответ

Решение

После еще нескольких проб и ошибок я наконец нашел решение, которое меня вполне удовлетворило.

Сначала добавьте прослушиватель событий в скрипт содержимого:

var extensionPort = chrome.extension.connect();

extensionPort.onMessage(function(msg) {
  // handle the received message
});

Чтобы отправлять сообщения на каждый подключенный порт добавочного номера, добавьте его в background.js:

chrome.extension.onConnect.addListener(function(port) {
  port.postMessage({ someMessage: 'take me to the foobar' });
});
Другие вопросы по тегам