1

我正在开发一个 google chrome 扩展,它有一个按钮和一个弹出覆盖。在这个扩展中,我为用户设置和删除 cookie。在开发过程中,扩展程序向 localhost:8080 发出请求,并且(我假设)cookie 被设置为 localhost 作为域。

问题是,我不知道如何从 Chrome 中的列表中查看这些 cookie。Firefox 有一个简单的功能,可以查看由各种主机名设置的所有 cookie,Chrome 似乎也是如此(尽管我对 Chrome 中的开发人员工具不太熟悉)。但是在 Chrome 的 cookie 列表中,我找不到为 localhost 设置的任何 cookie,也找不到为我的扩展程序设置的任何 cookie。我也尝试了一些 3rd 方 cookie 扩展——也没有运气。

扩展程序设置的 cookie 会出现在与普通网站设置的 cookie 相同的位置吗?如果是这样,为什么我没有看到他们?帮助表示赞赏。谢谢!

4

3 回答 3

2

是的,它们出现在示例位置。我编写了一个示例扩展以进行演示;在为 developer.chrome.com 域测试后截取的屏幕截图

在此处输入图像描述

示例扩展:

清单.json

{
  "name" : "Cookie API Demo",
  "version" : "1",
  "description" : "This is demonstration of Cookie API",
  "permissions": [ "cookies","<all_urls>"],
  "browser_action": {
    "default_icon": "screen.png",
    "default_popup":"popup.html"
  },
  "manifest_version": 2
}

popup.html

<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>

popup.js

function cookieinfo(){
    chrome.cookies.getAll({},function (cookie){
        console.log(cookie.length);
        for(i=0;i<cookie.length;i++){
            console.log(JSON.stringify(cookie[i]));
        }
    });
    chrome.cookies.getAllCookieStores(function (cookiestores){
        for(i=0;i<cookiestores.length;i++){
            console.log(JSON.stringify(cookiestores[i]));
        }
    });
    chrome.cookies.set({"name":"Sample1","url":"http://developer.chrome.com/extensions/cookies.html","value":"Dummy Data"},function (cookie){
        console.log(JSON.stringify(cookie));
        console.log(chrome.extension.lastError);
        console.log(chrome.runtime.lastError);
    });
    chrome.cookies.onChanged.addListener(function (changeInfo){
        console.log(JSON.stringify(changeInfo));
    });
}
window.onload=cookieinfo;
于 2012-11-23T05:24:11.833 回答
0

好吧,我想通了。这是一个前额拍板,但无论如何我都会在这里发布答案,以防其他人需要帮助。

如果您检查覆盖元素,则覆盖扩展的 cookie 只会显示在“开发人员工具”中。也就是说,如果您关闭覆盖并单击扳手按钮、开发人员工具、资源、cookie,您将看到的唯一内容是底层页面的 cookie。

要查看覆盖扩展的 cookie,请右键单击覆盖内部并“检查元素”。cookie 确实显示在那里,它们所附加的“域”是扩展程序的唯一 ID(kackjckjckjckcjckjckcjkcjckcj 或你有什么)。

随机说明:在撰写本文时,无论您将过期时间设置为什么,Jquery cookie 插件总是会在会话中终止您的 cookie。为了让我的 cookie 在浏览器关闭后仍然存在(存活),我必须包含良好的老式 setCookie() 和 getCookie() 函数并摆脱 Jquery cookie。

于 2012-11-24T13:49:39.293 回答
0

在您的浏览器中 - 访问:

chrome://settings/cookies

我只是将它设置为 chrome 中书签的地址 - 然后当我想查看 cookie 时只需单击我的书签

于 2015-09-02T23:39:01.380 回答