GreaseMonkey有没有内置的功能可以按站点或页面存储数据?例如,假设您想要调整StackOverflow.com,以便在收藏列表中的每个问题上添加一个注释并根据该注释进行排序。 GreaseMonkey是否具有内置功能来存储这些注释?或者脚本是否可以自我修改,以便您只需定义一个数组或对象并将数据保存在那里?
GreaseMonkey有没有内置的功能可以按站点或页面存储数据?例如,假设您想要调整StackOverflow.com,以便在收藏列表中的每个问题上添加一个注释并根据该注释进行排序。 GreaseMonkey是否具有内置功能来存储这些注释?或者脚本是否可以自我修改,以便您只需定义一个数组或对象并将数据保存在那里?
是的- GM_setValue。
这个方法允许用户脚本作者在页面加载时保留简单的值。目前仅允许字符串、布尔值和整数作为数据类型。
这些值被限制为简单的数据类型:字符串、布尔值和整数。这些值将被存储在Firefox首选项中(位于about:config),该首选项并非用于存储大量数据。
http://wiki.greasespot.net/GM_setValue
如果GM_setValue不适合您的需求,链接的问题/答案显示了其他很好的选择:GM_setValue的替代方案
需要强调的是,自从这个问题被提出以来,已经开发了新的API用于持久化数据存储。
仅支持字符串值,非字符串值将被转换为字符串。您可以使用JSON或自己的格式来存储对象。
示例:
localStorage.my_script_value = JSON.stringify([1,2,3,4]);
var my_parsed_value = JSON.parse(localStorage.my_script_value);
更复杂,但可以容纳更多数据 - 包括二进制大对象。请查看MDN文章获取详细信息。
示例:在MDN上查看此内容。