我在下面的案例中遇到了接收邮件回复的问题。我有一个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));
});