google-chrome - 通过popup修改本地存储,并在contentscript中使用存储值

标签 google-chrome google-chrome-extension popup local-storage browser-action

我正在尝试创建一个 chrome 扩展程序,但遇到了困难。

我希望能够使用浏览器操作弹出窗口将值写入/修改到本地存储(扩展存储)。

然后,我想在内容脚本中使用存储的值。

根据我的阅读,我似乎需要一个背景文件?但我不确定。

一些编码示例将不胜感激!

感谢您的帮助!

最佳答案

如果您使用chrome.storage API,您可以避免使用后台页面作为代理。 .这是一种可直接从 Content Scripts 获得的存储解决方案。

Here是它与 localStorage 在 Chrome 扩展上下文中的比较。


需要注意的重要一点是它是异步的,这使得代码比使用 localStorage 稍微复杂一些:

/* ... */
chrome.storage.local.get('key', function(value){
  // You can use value here
});
// But not here, as it will execute before the callback
/* ... */

但公平地说,如果您将后台作为数据代理,消息传递仍然是异步的。


有人会争辩说,一旦数据被传递,localStorage 就会作为一个同步缓存。

但是 localStorage 对象与网页共享,这是不安全的,没有人会阻止您拥有自己的同步存储缓存,使用 chrome.storage.local.get 初始化一次(null,/*...*/) 并通过 chrome.storage.onChanged 监听器保持最新。

关于google-chrome - 通过popup修改本地存储,并在contentscript中使用存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25559438/

相关文章:

html - 有没有办法告诉 Chrome 密码生成器网站密码策略?

javascript - Google Chrome 控制台在特定网站的每个页面中运行命令

javascript - Chrome webRequest 只监听用户输入的 URL

javascript - 将 JavaScript 添加到经典 ASP(这是新的)

android - 查看另一个 View

PHP + JavaScript 弹出窗口

google-chrome - ASP.NET 调试无法启动谷歌浏览器 - 错误 crome.exe 0xc0000142

.htaccess - Chrome Devtool 不在响应 header 中显示 Content-Encoding

html - CSS 下拉菜单在 Chrome 中在按钮单击和悬停时向下滚动页面

javascript - 检查 Chrome 中是否存在具有确切 ID 的 Tab 的最佳方法