0

我有一个Chrome扩展程序,它只是一个内容脚本。我想保留内容脚本中计算的一些数据,以便在浏览时轻松访问它,而无需在每个页面上重新计算。我只需要为会话存储数据。Chrome扩展程序的HTML5 sessionStorage或chrome.storage?

我正在看,但看起来数据会在会话结束后持续存在。我以前有使用HTML5 sessionStorage的经验,但我觉得我应该在这里利用Google的API。

任何输入表示赞赏,谢谢!

回答

3

在内容脚本中,使用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

+0

啊,是的,这很有道理。为了澄清,我必须使用google.storage,但他们没有会话存储选项,所以我必须通过删除每个启动时的本地存储实现我自己的会话存储? – sbru

+0

是的,这是正确的。 –

+0

我对这个结构有些困惑。我要去的流程是去域的任何子域我运行一些计算和存储数据(通过chrome.storage.local),然后当我去任何其他子域下的域我可以访问数据(通过chrome.storage.local)在该页面的内容脚本中。存储数据的代码是在background.js中,还是我不理解? – sbru

相关问题