Сценарий расширения не получает сообщения от сценария содержимого - расширение Chrome - PullRequest
0 голосов
/ 22 июня 2019

У меня есть прослушиватель событий, проверяющий движения мыши в скрипте содержимого, который при обнаружении отправляет сообщение chrome в скрипт расширения popup.js (то есть движения мыши). Однако сценарий popup.js, похоже, не получает ни одного из сообщений, переданных из сценария содержимого. Я также настроил вторичную последовательность передачи сообщений из всплывающего окна в скрипт контента, который работал по какой-то причине.

При выполнении обратного вызова chrome.runtime.onMessage.addListener печать не выполняется.

popup.js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
  console.log(request.selText);
  if (request.sender == "content" && request.selText == "disabled") {
    // Disabled for webpage - No action
  } else if (request.sender == "content" && request.selText !== 
    "disabled"){
    // Some action with request.selText
  }
});`

content.js:

document.addEventListener('mousemove', function (e) {
    chrome.runtime.sendMessage({sender: "content", selText : ""});
}, false);

Вторичная передача сообщений (это работает):

popup.js:

chrome.tabs.sendMessage(tabs[0].id, {cTabSettings: true});

content.js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.cTabSettings === true) {
      // Some action
    } else if (request.cTabSettings === false) {
      // Some action
    }
});

Мой ожидаемый результат - то, что поле request.selText будет напечатано в инструменте инспектора всплывающих окон, но это не так.

1 Ответ

0 голосов
/ 22 июня 2019

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

Код выглядит так:

  chrome.runtime.sendMessage({sender: "content", selText : ""}, 
     function () {});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...