我的Chrome扩展程序内容脚本使用chrome.runtime.sendMessage向我的后台脚本发送消息,后者需要读取Cookie并在以下“发送响应”代码中返回这些内容:< / p>
ContentScript.js
chrome.runtime.sendMessage({getcookies: "Get me cookies"}, function (response){
console.log(response.cookieList);
});
BackgroundScript.js
var cookiesFinal;
chrome.runtime.onMessage.addListener(function(res, sender, sendResponse) {
chrome.cookies.get({ url: 'https://www.example.com/', name: 'cookie1' }, function GetCookies(cookies) {
cookiesFinal = cookies;
});
sendResponse(cookiesList: cookiesFinal);
});
然而,当我运行这个时,我收到一条错误,说“无法读取cookie的值:undefined?”
有关如何使这项工作的任何提示?
答案 0 :(得分:0)
我可以看到2个问题:
sendResponse(cookiesList: cookiesFinal)
不是JSON格式。它应该是sendResponse({cookiesList: cookiesFinal})
chrome.cookies.get
的回调是异步的。因此,如果您在重新获取Cookie之前发送回复,cookiesFinal
可能仍未定义。
当你在回调函数中检索到cookie时,它可以向内容脚本发送另一条消息。