从内容脚本发送一条消息。后台有一个监听器:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
console.log("from a content script:" + sender.tab.url);
chrome.cookies.get({ url: sender.tab.url, name: "hello" }, function (cookie) {
if (cookie) {
sendResponse({answer: "yes"});
}
else {
sendResponse({answer: "no"});
}
});
console.log('Пришло cs: ', request);
});
正如您可能已经猜到的那样,sendResponse 应该返回对内容脚本的响应,但它并没有返回任何响应。我怀疑是异步的chrome.cookies.get请求来不及返回值,因为 使用断点一切正常。
分享您在这种情况下可以做什么的经验。
pS 我怀疑你会寄给我阅读“How to return a value from an event or from a callback function?” ,但不幸的是我没能把它应用到我的案例中 =(
让它
return true;在侦听器的末尾,从而 Chrome 将等待异步调用完成。链接到 en.so 答案。