chrome扩展程序是否拥有自己的document.cookie?

时间:2014-07-24 00:41:44

标签: javascript google-chrome cookies google-chrome-extension

我正在写一个chrome扩展程序。我想在浏览器cookie中存储一些数据,以便以后可以使用它。 Cookie是一种完美的方式。 chrome扩展程序是否像所有网站一样拥有自己的文档cookie?

我做了一些研究后得到了这个结果https://developer.chrome.com/extensions/cookies 但它主要是讨论cookie API和获取其他网站的cookie因此这个问题。与使用cookie相比,chrome存储还有什么优势?我只需要存储2/3键值对。 https://developer.chrome.com/apps/storage

2 个答案:

答案 0 :(得分:6)

我会说一行,你会明白的。

  

Cookie始终与网站/域名相关。

询问Chrome扩展程序是否有Cookie是没有意义的。你可以为每个域都有一个cookie。

有助于您解决问题的更多信息。如果您看到chrome扩展模型,则可以看到

  1. 背景脚本
  2. 内容脚本
  3. 弹出页面/脚本
  4. 如果你想在后台脚本/弹出脚本中存储cookie,那么你绝对可以做到。但是,该cookie将保存在您的后台脚本的域中,这主要是您的chrome扩展ID。

    如果您将cookie存储在内容脚本中,那么您将信息存储在cookie中,该cookie属于注入内容脚本的域。

答案 1 :(得分:4)

一方面,是的,Chrome扩展程序中提供了Cookie。但这是一种非常非正统的方法,可以将数据存储在扩展中。

正如您正确指出的那样,chrome.cookies API用于操纵其他网页'饼干。在JS中使用cookie的常用方法是document.cookie

存储持久数据的常用方法是什么?

两种经典方式是localStoragechrome.storage

我以前回答过他们;有关它们之间的比较,请参阅this answer;有关使用示例,请参阅this answer

要确定您的需求,最重要的问题是:您是否需要访问内容脚本中的数据?

  • 如果不是,使用localStorage可能会更简单。
  • 如果是,您将需要使用chrome.storage或消息传递。