问题 在Greasemonkey脚本中存储数据


GreaseMonkey是否内置了一些内容,因此您可以按站点或每页存储数据?例如,假设您想要调整StackOverflow.com,以便您可以为收藏夹列表中的每个问题添加注释,并对该注释进行排序。 GreaseMonkey有内置的东西来存储这些笔记吗?或者脚本可以自我修改,这样您只需定义一个数组或对象并将数据保存在那里?


5808
2017-08-12 19:30


起源



答案:


是的 - GM_setValue

此方法允许用户脚本作者在页面加载中保留简单值。   字符串,布尔值和整数是目前唯一允许的数据类型


12
2017-08-12 19:31



还有一个名为super_gm_setvalue的库,它允许跨域存储所有类型的JavaScript对象。 userscripts.org/scripts/show/107941 - Anderson Green


答案:


是的 - GM_setValue

此方法允许用户脚本作者在页面加载中保留简单值。   字符串,布尔值和整数是目前唯一允许的数据类型


12
2017-08-12 19:31



还有一个名为super_gm_setvalue的库,它允许跨域存储所有类型的JavaScript对象。 userscripts.org/scripts/show/107941 - Anderson Green


这些值仅限于简单数据类型:string,boolean和integer。这些值将存储在Firefox首选项(位于about:config中)中,该首选项不是为存储大量数据而设计的。

http://wiki.greasespot.net/GM_setValue

如果GM_setValue没有删除它,链接的问题/答案显示其他很大的可能性: GM_setValue的替代品


2
2018-05-22 21:31



以来 Greasemonkey 1.13 每个用户脚本保存一个值 SQLite数据库


真的有必要补充说,自从提出这个问题以来,为持久性数据存储开发了新的API。

本地存储

仅保留字符串值,非字符串值将转换为字符串。您可以使用JSON或您自己的格式来存储对象。

例:

localStorage.my_script_value = JSON.stringify([1,2,3,4]);

var my_parsed_value = JSON.parse(localStorage.my_script_value);

IndexedDB的

更复杂,但可以容纳更多数据 - 包括二进制blob。有关详细信息,请查看MDN文章。

例: 在MDN上检查一下


0
2017-12-17 13:43