从Google Chrome扩展访问Cookie

ckocjqey  于 2022-12-06  发布在  Go
关注(0)|答案(5)|浏览(265)

有没有办法从Chrome扩展访问cookie?这段代码

document.cookie.length

始终返回- 0。

6ljaweal

6ljaweal1#

目前,在扩展中获取站点cookie的最佳(最简单)方法是将以下代码放在后台脚本中:

chrome.cookies.get({ url: 'http://example.com', name: 'somename' },
  function (cookie) {
    if (cookie) {
      console.log(cookie.value);
    }
    else {
      console.log('Can\'t get cookie! Check the name!');
    }
});

因此,现在您不需要为此编写内容脚本,但不要忘记在清单中包含权限:

"permissions": [
  "cookies",
  "*://*.example.com/*"
]
ncgqoxb0

ncgqoxb02#

这是我第一次在这个网站上读到一些真正错误的东西。从一个扩展中获得实际的文档cookie是 * 确实 * 可能的。
你只需要在你的清单里有两样东西:

"content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["cookie_handler.js"]
    }
  ],
  "permissions": [
    "tabs",
    "http://*/*",
    "https://*/*"
  ],

您的cookie_handler. js将在每个加载器页面/frame/iframe的相同上下文中执行。尝试在那里放一行:

alert(document.cookie);

你会看到:)

6kkfgxo0

6kkfgxo03#

如果你想在用户不访问网站的情况下操作cookie信息,(对FireFox的TACO很有用),你现在就不走运了。不过看起来Google正在努力:他们最近在实验性API中添加了一个相对完整的cookie处理程序:chrome.experimental.cookies
希望这将很快升级到受支持的API。

vktxenjb

vktxenjb4#

如果你改变manifest.json,你必须删除谷歌浏览器扩展,并重新添加它。
请尝试以下步骤:
1.点击Chrome浏览器顶部的扩展-〉管理扩展。
1.删除扩展
1.单击Load Unpacked -〉导航到扩展项目文件夹。
已载入manifest.json的变更。

htzpubme

htzpubme5#

更棒的是,您可以使用HTML5 Localstorage:

localStorage.setItem("itemid", "hello" );   // write
value = localStorage.getItem("itemid");     // read

如果你真的想读取用户正在观看的任何网站的cookie,就像丹写的那样,这是不可能的,因为真的很糟糕的事情可能会发生。
从页面中获取的只是页面DOM内容。

相关问题