Задать вопрос
zkrvndm
@zkrvndm
Архитектор решений

Как передать сообщение из popup-окна расширения во все запущенные content-скрипты?

Здравствуйте, никак не удается передать сообщение из popup-окна расширения в content-скрипты на открытых сайтах.

Для приема сообщений использую обработчик chrome.extension.onMessage.addListener()
Для отправки сообщений использую chrome.extension.sendMessage()

При этом, работа этих интерфейсов вызывает у меня непонимание:
1. Из content-скрипта в background.js сообщение корректно передаётся
2. Из background.js в popup-окно расширения сообщение тоже нормально уходит
3. Из popup-окна расширения в background.js проблем с передачей тоже нет

Однако при попытке передать сообщение именно в content-скрипт я не получаю ничего! Как так?
  • Вопрос задан
  • 532 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
zkrvndm
@zkrvndm Автор вопроса
Архитектор решений
Все, я разобрался. Оказалось, что для передачи сообщения в content-скрипт нужно использовать другой метод:
chrome.tabs.query({}, function(tabs) {
    for (var i=0; i<tabs.length; i++) {
        chrome.tabs.sendMessage(tabs[i].id, "наше сообщение");
    }
});

Прием сообщения через chrome.extension.onMessage.addListener() корректно работает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы