gpt4 book ai didi

javascript - 无法在 Chrome 扩展的弹出窗口中从后台检索消息

转载 作者:行者123 更新时间:2023-12-03 10:14:54 25 4
gpt4 key购买 nike

我正在尝试在 popup.js 文件和 background.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但是我不确定这是否相关或如何解决这个问题。

最佳答案

我没有正确阅读

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

解决问题:

根据文档

This function becomes invalid when the event listener returns, unless you return true from the event listener to indicate you wish to send a response asynchronously (this will keep the message channel open to the other end until sendResponse is called).

希望这对将来的其他人有帮助。

关于javascript - 无法在 Chrome 扩展的弹出窗口中从后台检索消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29932393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com