我正在尝试在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但是我不确定这是否相关或如何解决这个问题。
答案 0 :(得分:1)
我没有正确阅读
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
// sendResponse({"message": "hi"}); //works
getTotals(sendResponse);
return true;
}
}
解决了问题:
根据文件
除非事件侦听器返回,否则此函数将变为无效 从事件监听器返回true表示您希望发送一个 异步响应(这将使消息通道保持打开状态 另一端直到调用sendResponse)。
希望将来可以帮助其他人。