【问题标题】:Where does GM_setValue store data?GM_setValue 在哪里存储数据?
【发布时间】:2013-05-29 20:58:46
【问题描述】:

GM_setValue 将数据存储到 chrome 中的什么位置。我试图确定数据的去向,但无法弄清楚。我使用进程监视器进行监视,发现当我存储一个值时,chrome 正在更新 chrome_iwoeoiifoi2h3iofhufsdfnvdf 类型的文件,我用 sqlite 浏览器打开了它,但数据不存在。我查看了所有最近修改的文件,试图找到数据但找不到。

最新的 chrome/TM。

【问题讨论】:

    标签: google-chrome tampermonkey


    【解决方案1】:

    在 Tampermonkey 中,GM_setValue() 数据存储在 LevelDB database 中,可以在 the User Data Directory 树中找到。

    曾经在 Chrome 的“用户数据目录”中(例如:C:\Users\USER_JOE\AppData\Local\Google\Chrome\User Data\Default\),

    导航到Local Extension Settings\dhdgffkkebhmkfjojejmpbldmpobfkfo 文件夹

    gcalenpjmijncebpfijmoaglllgpjagf 用于 Tampermonkey Beta。)

    在那里你会找到一个LevelDB database,通常命名为CURRENT。您可以使用 LevelDB JSON 之类的工具对其进行操作,但目前对 LevelDB 的外部支持似乎参差不齐,而且我还没有找到任何适用于 Windows 的工具(可能必须自己编译)。

    你也可以use the Chrome Storage Area Explorer extension to explore the data

    从 Tampermonkey 4.3.6 开始,您可以在内置脚本编辑器中使用存储选项卡查看单个脚本的数据:(如果“存储”选项卡不可见,编辑 Tampermonkey Settings > General Config mode > Advanced)




    旧,2015 年 11 月之前:

    • 之前,大约在 2015 年 11 月,数据存储在 Web SQL database 中的 databases\chrome-extension_dhdgffkkebhmkfjojejmpbldmpobfkfo_0 中。

    导航到正确的文件夹后,您通常会看到两个文件。在我的机器上,它们目前只是命名为46。这些都是SQLite 文件(Chrome 的 Web SQL 实现的后端),可以使用 SQLite 查看器/实用程序进行检查。

    我机器上的(通常)较大的文件6 是一个包含 94000 个用户脚本的列表,有点令人不安!我不确定它的用途是什么,但没有进行太多调查。

    在我的机器上较小的文件(至少最初是)4 是保存有关/用于您的用户脚本的所有信息的地方。这包括GM_setValue() 设置的任何数据。


    例如,如果我安装并运行这个用户脚本:

    // ==UserScript==
    // @name     _GM_setValue demo
    // @match    https://stackoverflow.com/questions/*
    // @grant    GM_setValue
    // ==/UserScript==
    
    GM_setValue ('foo', 'bar');
    

    然后我检查文件 `4` 中的 `config` 表,我会看到四个这样的条目: [![示例脚本的数据库条目][8]][8]
    你想要的是 `@st` 行。请注意它是如何编码“GM_setValue”数据的? :

    【讨论】:

    • 谁能确认这仍然适用于 TM3.11,Chrome 版本 46.0.2490.80 m?
    • 感谢 Brock 的理智检查。我正在研究它并将发布结果,担心 GM_set/getValue 可能已停止工作,但很高兴报告他们仍然按预期工作,尚未找到数据的存储位置!
    • @RichardPlester @BrockAdams Tampermonkey 设置现在作为 levelDB 存储在 \Chrome\User Data\Default\Local Extension Settings\dhdgffkkebhmkfjojejmpbldmpobfkfo 中。可以使用leveldb-json 等工具进行编辑。
    • 我可以在上述文件夹中找到名为current 的文件,但这个文件只有16 个字节,并且多年未更改。它可能只包含一些参考。实际数据似乎在我计算机上同一文件夹中名为 000043.log 的文件中。
    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 2012-04-11
    • 2011-12-14
    • 2020-01-07
    • 2011-12-09
    • 2019-05-24
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多