有没有办法从Chrome扩展访问cookie?这段代码
document.cookie.length
始终返回- 0。
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/*" ]
ncgqoxb02#
这是我第一次在这个网站上读到一些真正错误的东西。从一个扩展中获得实际的文档cookie是 * 确实 * 可能的。你只需要在你的清单里有两样东西:
"content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "js": ["cookie_handler.js"] } ], "permissions": [ "tabs", "http://*/*", "https://*/*" ],
您的cookie_handler. js将在每个加载器页面/frame/iframe的相同上下文中执行。尝试在那里放一行:
alert(document.cookie);
你会看到:)
6kkfgxo03#
如果你想在用户不访问网站的情况下操作cookie信息,(对FireFox的TACO很有用),你现在就不走运了。不过看起来Google正在努力:他们最近在实验性API中添加了一个相对完整的cookie处理程序:chrome.experimental.cookies希望这将很快升级到受支持的API。
vktxenjb4#
如果你改变manifest.json,你必须删除谷歌浏览器扩展,并重新添加它。请尝试以下步骤:1.点击Chrome浏览器顶部的扩展-〉管理扩展。1.删除扩展1.单击Load Unpacked -〉导航到扩展项目文件夹。已载入manifest.json的变更。
htzpubme5#
更棒的是,您可以使用HTML5 Localstorage:
localStorage.setItem("itemid", "hello" ); // write value = localStorage.getItem("itemid"); // read
如果你真的想读取用户正在观看的任何网站的cookie,就像丹写的那样,这是不可能的,因为真的很糟糕的事情可能会发生。从页面中获取的只是页面DOM内容。
5条答案
按热度按时间6ljaweal1#
目前,在扩展中获取站点cookie的最佳(最简单)方法是将以下代码放在后台脚本中:
因此,现在您不需要为此编写内容脚本,但不要忘记在清单中包含权限:
ncgqoxb02#
这是我第一次在这个网站上读到一些真正错误的东西。从一个扩展中获得实际的文档cookie是 * 确实 * 可能的。
你只需要在你的清单里有两样东西:
您的cookie_handler. js将在每个加载器页面/frame/iframe的相同上下文中执行。尝试在那里放一行:
你会看到:)
6kkfgxo03#
如果你想在用户不访问网站的情况下操作cookie信息,(对FireFox的TACO很有用),你现在就不走运了。不过看起来Google正在努力:他们最近在实验性API中添加了一个相对完整的cookie处理程序:chrome.experimental.cookies
希望这将很快升级到受支持的API。
vktxenjb4#
如果你改变manifest.json,你必须删除谷歌浏览器扩展,并重新添加它。
请尝试以下步骤:
1.点击Chrome浏览器顶部的扩展-〉管理扩展。
1.删除扩展
1.单击Load Unpacked -〉导航到扩展项目文件夹。
已载入manifest.json的变更。
htzpubme5#
更棒的是,您可以使用HTML5 Localstorage:
如果你真的想读取用户正在观看的任何网站的cookie,就像丹写的那样,这是不可能的,因为真的很糟糕的事情可能会发生。
从页面中获取的只是页面DOM内容。