Запрос вкладки браузера «Получающий конец не существует», который работает на Chrome - PullRequest
0 голосов
/ 22 ноября 2018

Фоновый сценарий

browser.runtime.onMessage.addListener(function (event) {
  if( event.type === 'authenticate' ) {
    browser.tabs.query({active: true}, function(tab) {
      browser.tabs.sendMessage(tab[0].id, {
        method: 'main',
        auth0: "test"
      }, function() {});
    });
  }
});

Содержимое сценария

browser.runtime.sendMessage({
  type: "authenticate"
});

browser.extension.onMessage.addListener(function(request, sender, sendResponse) {
  if( request.method == 'main' ) {
    login();
  } else if( request.method == 'logout' ) {
    logout();
  }
  sendResponse({});
});

Событие проходит, и идентификатор вкладки правильный, но в отладочной информации из firefox отображается «Ошибка: не удалось установить соединение. Получающий конец не существует. "

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

1 Ответ

0 голосов
/ 23 ноября 2018

Использование browser.runtime.onMessage и изменение

browser.tabs.query({active: true}, function(tab) {
  browser.tabs.sendMessage(tab[0].id, {
    method: 'main',
    auth0: "test"
  }, function() {});
});

на

browser.tabs.query({active: true, currentWindow: true}, function(tab) {
    chrome.tabs.sendMessage(tab[0].id, {
        method: 'main',
        auth0: "test"
    });
});

исправили это для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...