如何/在何处将数据存储在Chrome Tampermonkey脚本中?

Rak*_*yal 29 javascript greasemonkey google-chrome local-storage tampermonkey

我为Facebook写了一个Greasemonkey/Tampermonkey脚本.我需要存储数据以便以后检索它.为此我用过localStorage.
那很好用.但我注意到,几个小时后,我存储的所有数据都被删除了automaticgicllay.可能Facebook本身会删除所有localStorage数据.

现在,我搜索了替代品.

  1. Cookie:当用户清除历史记录时,不会删除此项.
  2. Web SQL:显然它被w3.org删除了.所以在不久的将来我会假设chrome也可能没有使用web sql.

我想将数据存储在客户端系统中.我有什么选择?我应该使用FileSystem来存储数据吗?

Bro*_*ams 54

由于您使用的是Tampermonkey(Chrome)和Greasemonkey(Firefox).继续使用GM_setValue().它无法通过Facebook或任何其他网站清除.

它还具有跨域存储值的优点.

~~~
请注意,沼泽标准GM_setValue()Firefox上有些问题.它可能导致脚本实例在无效值上崩溃 - 因此最好使用序列化程序(如GM_SuperValue)来存储除字符串之外的任何内容.即使看起来无辜的整数也会导致默认GM_setValue()崩溃.

目前,只有GM_setValue()cookie,localStorage和IndexedDB可用于两种浏览器上的持久数据.

IndexedDB也可能会做你想要的,但它没有那么容易使用GM_setValue().


更新:
如今,别忘了使用:

  • // @grant GM_setValue
  • // @grant GM_getValue

此外,如果您使用GM_SuperValue库,现在可以添加:

// @require http://userscripts-mirror.org/scripts/source/107941.user.js 
Run Code Online (Sandbox Code Playgroud)

在元数据块中.(因为userscripts.org已经死了.)

  • 注 1:Tampermonkey (Chrome) 上不存在“GM_SuperValue”,至少在 2017.01.24 chrome 55.0.2883.87 m(64 位)上不存在。 (2认同)