【问题标题】:Chrome extension - cookies.getAll returns nothingChrome 扩展 - cookies.getAll 不返回任何内容
【发布时间】:2018-02-06 02:15:00
【问题描述】:

当我运行以下函数时,cookie 长度为零:

function cookieinfo() {
    chrome.cookies.getAll({}, function(cookie) {
        console.log(cookie.length);
        allCookieInfo = "";
        for (i = 0; i < cookie.length; i++) {
            console.log(JSON.stringify(cookie[i]));

            allCookieInfo = allCookieInfo + JSON.stringify(cookie[i]);
        }
    localStorage.allCookieInfo = allCookieInfo;
});

它应该找到用户拥有的所有 cookie,但我什么也没得到。

使用:我正在创建一个 chrome 扩展程序,为用户创建一个新选项卡。我正在尝试重新创建 chrome 新标签的外观以及它们如何显示用户已经访问过的页面。

这里是manifest.json:

{ "manifest_version": 2, "name": "-------", "version": "0.1", "background": { "scripts": ["background.js"] }, "content_scripts": [{ "matches": [ "<all_urls>" ], "js": ["jquery-3.2.1.min.js", "content.js"] }], "permissions": ["tabs", "cookies"], "chrome_url_overrides": { "newtab": "NewTab.html" } }

【问题讨论】:

  • 您是否在清单中提供了正确的权限?此外,您将通过连接 JSON.stringify() 结果创建无效 JSON,即您将创建类似:"{}{}{}{}{}"
  • @PatrickEvans 是的,我确实在清单中添加了权限:"permissions": ["tabs", "cookies"] 我会试试 JSON.stringyfy()
  • @PatrickEvans 尝试过 JSON.stringify(cookie[0]) 并且我没有确定。对于 JSON.stringify(cookie) 我得到 [],所以它是空的。我是按这种方式写的,还是你的意思是别的?
  • 您还必须在权限中添加您想要访问的网站的网址,例如,如果您希望全部使用&lt;all_urls&gt;。至于 JSON,我的意思是如果它一直在工作,你就会将无效的 JSON 存储到 localStorage
  • @PatrickEvans 我正在使用&lt;all_urls&gt;。由于第一个打印长度的 console.log 返回零,所以它当然不起作用。

标签: javascript google-chrome cookies


【解决方案1】:

根据chrome dev docs,“要使用 cookie API,您必须在清单中声明“cookies”权限,以及您想要访问其 cookie 的任何主机的主机权限。”

所以你需要在 manifest.json 中添加“主机权限”,例如 this example

【讨论】:

    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2019-04-06
    • 2012-02-15
    • 2020-09-07
    • 2021-11-22
    • 2015-11-06
    相关资源
    最近更新 更多