从Google Chrome扩展程序访问Cookie

17 javascript cookies google-chrome

有没有办法从Chrome扩展程序访问Cookie?这段代码

document.cookie.length
Run Code Online (Sandbox Code Playgroud)

总是返回 - 0.

Zib*_*bri 27

这是我第一次在这个网站上看到一些非常错误的东西.获取实际的文档饼干从扩展INDEED可能.

你只需要清单中的这两件事:

"content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["cookie_handler.js"]
    }
  ],
  "permissions": [
    "tabs",
    "http://*/*",
    "https://*/*"
  ],
Run Code Online (Sandbox Code Playgroud)

你的cookie_handler.js将在每个loader页面/ frame/iframe的相同上下文中执行.试着把它放在一行:

alert(document.cookie);
Run Code Online (Sandbox Code Playgroud)

你会看到:)

  • @MuhammadAdeelZahid您需要在那里编写cookie处理程序脚本:P (2认同)

Kon*_*nin 22

目前,在扩展中获取网站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!');
    }
});
Run Code Online (Sandbox Code Playgroud)

所以现在你不需要内容脚本,但不要忘记在manifest中包含权限:

"permissions": [
  "cookies",
  "*://*.example.com/*"
]
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用.值得一提的是,您需要将此代码放在后台脚本上. (10认同)

Omi*_*iod -6

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

localStorage.setItem("itemid", "hello" );   // write
value = localStorage.getItem("itemid");     // read
Run Code Online (Sandbox Code Playgroud)

如果你真的想读取用户正在观看的任何网站的 cookie,正如 Dan 所写,这是不可能的,因为可能会做出非常糟糕的事情。

您可以从页面获取的只是页面 DOM 内容。