带有 chrome 扩展的 cookie 或 localStorage

Posted

技术标签:

【中文标题】带有 chrome 扩展的 cookie 或 localStorage【英文标题】:cookie or localStorage with chrome extensions 【发布时间】:2011-04-05 15:33:40 【问题描述】:

我已阅读此处有关该主题的所有其他问题,但无法解决我的问题。 我在我的网站上设置了 localStorage 中用户的电子邮件,我想在扩展程序中检索它。

localStorage.setItem("user", "andrei.br92@gmail.com" ); 

但是当我尝试使用 chrome 扩展接收它时,它没有这样做

value = localStorage.getItem("user");

哪种方式更容易?饼干本地存储?我不是自命不凡

【问题讨论】:

当您尝试检索该值时,您会得到什么 - 未定义或 null?另外——您使用什么页面/文件来存储项目以及您使用什么页面/文件来检索项目? 【参考方案1】:

请看这个:

http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication

内容脚本在单独的 javascript 世界中运行,这意味着内容脚本的 localStorage 与网站的 localStorage 不同。两者共享的唯一东西是 DOM,因此您需要使用 DOM 节点/事件进行通信。

【讨论】:

【参考方案2】:

使用chrome.storage.local 而不是localstorage。使用chrome.storage 的内容脚本与扩展页面看到的内容相同。更多https://developer.chrome.com/extensions/storage.html

【讨论】:

【参考方案3】:

请参阅Chrome content scripts 上的信息。我敢打赌你落入了和我一样的初始陷阱——试图从页面注入脚本中读取 localStorage,是吗?

【讨论】:

【参考方案4】:

您不想在 localstorage 可以使用的情况下使用 cookie。那是因为

只能通过后台页面访问/修改 Cookie。 Cookie 存储在 url/域的上下文中,而不是扩展名。因此,您必须为要操作的每个域存储一个 cookie。 每个 HttpRequest 都会将与相应 url/域关联的所有 cookie 传输到服务器,因此实际上您将增加用户请求的开销。)

【讨论】:

以上是关于带有 chrome 扩展的 cookie 或 localStorage的主要内容,如果未能解决你的问题,请参考以下文章

Chrome扩展程序:如何拦截Cookie?

使用 cookie 从 Chrome 扩展发送 XHR 请求

Chrome扩展程序获取功能不会发送Cookie

在 Chrome 扩展中使用时,Fetch API 不发送会话 cookie

如何检查 chrome devtools 中的所有 cookie?

带有IFrames Chrome 63的Android Cordova应用程序无请求标题Cookie