使用chrome.runtime.sendMessage API将cookie返回到内容脚本?

时间:2015-12-19 13:52:19

标签: javascript google-chrome cookies google-chrome-extension

我的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?”

有关如何使这项工作的任何提示?

1 个答案:

答案 0 :(得分:0)

我可以看到2个问题:

  1. sendResponse(cookiesList: cookiesFinal)不是JSON格式。它应该是sendResponse({cookiesList: cookiesFinal})

  2. chrome.cookies.get的回调是异步的。因此,如果您在重新获取Cookie之前发送回复,cookiesFinal可能仍未定义。

  3. 当你在回调函数中检索到cookie时,它可以向内容脚本发送另一条消息。