带有 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的主要内容,如果未能解决你的问题,请参考以下文章
使用 cookie 从 Chrome 扩展发送 XHR 请求
在 Chrome 扩展中使用时,Fetch API 不发送会话 cookie