无法在Chrome扩展程序的弹出窗口中从后台检索邮件

时间:2015-04-29 00:40:37

标签: javascript google-chrome google-chrome-extension

我正在尝试在popup.js文件和chrome.js文件之间进行通信以获取chrome扩展。但是,当使用chrome存储检索信息时,客户端不再接收回调的执行(popup.js)

在background.js文件中。

function getTotals(callback){
  chrome.storage.sync.get(LMSCats, function(data){
    callback({"results": data}); // does not work
  });
}

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    // sendResponse({"message": "hi"}); //works
    getTotals(sendResponse);
  }
}

在popup.html文件

中引用的popup.js中
chrome.runtime.sendMessage({action: "total"}, function(data){
    console.log(data);
});

我不确定我是否遗漏了文档中的内容,因此我们将不胜感激任何帮助。 我遇到了chrome extension onMessage但是我不确定这是否相关或如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

我没有正确阅读

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    // sendResponse({"message": "hi"}); //works
    getTotals(sendResponse);
    return true;
  }
}

解决了问题:

根据文件

  

除非事件侦听器返回,否则此函数将变为无效   从事件监听器返回true表示您希望发送一个   异步响应(这将使消息通道保持打开状态   另一端直到调用sendResponse)。

希望将来可以帮助其他人。