【问题标题】:Storing data in Greasemonkey scripts在 Greasemonkey 脚本中存储数据
【发布时间】:2017-12-17 21:43:16
【问题描述】:

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

【问题讨论】:

    标签: javascript greasemonkey


    【解决方案1】:

    是的 - GM_setValue

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

    【讨论】:

    【解决方案2】:

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

    http://wiki.greasespot.net/GM_setValue

    如果 GM_setValue 没有解决问题,则链接的问题/答案会显示其他很大的可能性:alternatives to GM_setValue

    【讨论】:

    • 由于 Greasemonkey 1.13 值被每个用户脚本保存在 SQLite 数据库
    【解决方案3】:

    确实需要补充一点,自从提出这个问题以来,新的 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 文章。

    例如:Check this on MDN.

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      相关资源
      最近更新 更多