Chrome扩展程序消息响应未从后台页面发送到弹出窗口

时间:2014-12-17 00:12:28

标签: angularjs google-chrome-extension

我在下面的案例中遇到了接收邮件回复的问题。我有一个popup.html和popup.js文件,它使用angularjs(不确定是否相关)。下面的popup.js代码在angular app的init中运行。

我将配置设置存储在chrome同步存储中,并尝试让弹出窗口和contentscript javascript文件从后台页面请求这些设置。

当我发送' sendResponse({})'在异步chrome.storage.sync.get调用之外调用,它工作正常,popup.js接收响应。但是,当我发送响应时'在chrome.storage.sync.get回调中调用,不执行弹出消息响应处理程序。我是否在传递消息时做错了什么?

background page.js:

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
  var resp= {greeting: "hi"};
  // when the response is sent here, the popup.js file writes to the console
  sendResponse(resp);

  // The below code displays the alert but the popup.js does not display the console.log
  //chrome.storage.sync.get("isActive", function (isActiveData) {
  //
  //  sendResponse(resp);
  //  alert('response sent: ' + JSON.stringify(resp));;
  //});
});

popup.js:

chrome.runtime.sendMessage({action: "getConfig"}, function (getConfigResponse) {
    console.log("getConfigResponse: " + JSON.stringify(getConfigResponse));
});

0 个答案:

没有答案