13

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

最新的镀铬/TM。

4

1 回答 1

24

在 Tampermonkey 中,GM_setValue()数据存储在LevelDB 数据库中,该数据库可以在用户数据目录树中找到。

一旦进入 Chrome 的“用户数据目录”(EG: C:\Users\USER_JOE\AppData\Local\Google\Chrome\User Data\Default\),

导航到 Local Extension Settings\dhdgffkkebhmkfjojejmpbldmpobfkfo文件夹

gcalenpjmijncebpfijmoaglllgpjagf对于 Tampermonkey Beta。)

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

您还可以使用 Chrome存储区资源管理器扩展来探索数据

从 Tampermonkey 4.3.6 开始,您可以使用内置脚本编辑器中的存储选项卡查看单个脚本的数据:(如果“存储”选项卡不可见,请编辑 Tampermonkey 设置 > 常规配置模式 > 高级)

脚本存储编辑器




旧的,2015 年 11 月之前的 2015 年:

导航到正确的文件夹后,通常会看到两个文件。在我的机器上,它们目前只是命名为4and 6。这些都是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` 表,我会看到四个这样的条目: [![DB entries for sample script][8]][8]
你想要的是 `@st` 行. 请注意它是如何编码“GM_setValue”数据的?:

DB条目,金钱射击

于 2013-05-30T06:21:10.680 回答