如何在Chrome扩展程序中异步与内容脚本通信背景?

时间:2019-04-06 10:07:13

标签: javascript firebase asynchronous google-chrome-extension google-cloud-firestore

我需要使用chrome扩展名连接我的Firestore数据库,而情况是这样的:

    例如,我在Wikipedia页面上,然后单击 浏览器操作并发送chrome.runtime.sendMessage('auth')
  1. 在background.js中,我使用chrome.runtime.onMessage.addListener(receiver)获取该点击事件并登录到Firebase
  2. 成功登录过程后,我将发送下一条消息(例如chrome.runtime.sendMessage('test');)
  3. 仍然在Wikipedia页面和console.log中(在主要开发工具中),我需要查看最后一条消息(“测试”),但什么也看不到。
  4. 我看到该消息,但仅当我刷新该页面时

我做错了什么?我尝试使用以下所有示例发送最后一条消息(登录到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中异步显示,而仅在刷新页面后才会显示

0 个答案:

没有答案