HTML5 sessionStorage 或 chrome.storage 用于 Chrome 扩展?

HTML5 sessionStorage or chrome.storage for Chrome Extension?

我有一个 Chrome 扩展,它只是一个内容脚本。我想保留一些在内容脚本中计算的数据,这样我就可以在浏览时轻松访问它,而不必在每个页面上重新计算它。我只需要为会话存储数据。

我正在查看 chrome.storage API,但数据似乎会在会话结束后保留​​在那里。我以前有使用 HTML5 sessionStorage 的经验,但我觉得我应该在这里利用 Google 的 API。

欢迎任何意见,谢谢!

在内容脚本中,使用 sessionStorage 将访问和修改该站点的 sessionStorage,而不是您的扩展。

如果您希望它可用于其他网站上的内容脚本并避免破坏网站,则必须使用 chrome.storage.local。

没有自动清除 chrome.storage.local 数据,但您可以创建一个在启动时清除它的事件页面。

manifest.json:

"background": { "scripts": [ "background.js" ], "persistent": false }

background.js:

chrome.runtime.onStartup.addListener(function() {
 chrome.storage.local.clear()
})

chrome.storage.local.clear

chrome.runtime.onStartup

Event Pages

从 Chrome 102+ 开始,现在有一个基于会话的存储 API 用于 Chrome 扩展。它将数据存储在内存中。

https://developer.chrome.com/docs/extensions/reference/storage/#property-session