Как связать фон с скриптом контента асинхронно в расширении chrome? - PullRequest
0 голосов
/ 06 апреля 2019

Мне нужно подключить свою базу данных FireStore с расширением Chrome, и сценарий таков:

  1. Я, например, на странице Википедии и нажимаю кнопку входа в действие браузера и отправьте chrome.runtime.sendMessage ('auth')
  2. в background.js, я использую chrome.runtime.onMessage.addListener (получатель), чтобы получить это событие щелчка и войти в систему firebase
  3. После успешного входа в систему, я отправляю следующее сообщение (например, chrome.runtime.sendMessage ('test');)
  4. Тем не менее я нахожусь на странице википедии и в console.log (в инструментах основного разработчика) Мне нужно увидеть последнее сообщение ('test'), но ничего не вижу.
  5. Я вижу это сообщение, но только когда обновляю эту страницу

Что я делаю не так? Я пытался отправить последнее сообщение (после входа в firebase) со всеми этими примерами:

background.js

chrome.runtime.sendMessage('test');

или

chrome.storage.sync.set({"type": test});

или

chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
  chrome.tabs.sendMessage(tabs[0].id, {action: "test"}, function(response) {});  
});

content.js

chrome.storage.sync.get(['type'], function(msg) {
  console.log('msg', msg);
});

chrome.runtime.onMessage.addListener(gotMessage);

function gotMessage(message, sender, sendResponse) {
  console.log(JSON.stringify(message));
}

и сообщение 'test' никогда не отображается в console.log асинхронно, а только после обновления страницы

...