无法识别 GM 脚本中的本地 CSS 资源

Local CSS resource in GM script not recognized

我有一个包含以下内容的 GM 脚本:

...
// @grant          GM_addStyle
...
// @resource       css my.css
...

GM_addStyle(GM_getResourceText('css')) // the error occurs here

...

GM 最近从 config.xml(偶尔发生)中删除了这个脚本,所以:

现在它再次运行但抛出:

Error: No resource with name "css"

这是为什么?资源上面声明的并且它存在在脚本的文件夹中。 (声明和实际文件名之间也没有 upper/lower 大小写差异。)

更新

Windows 7 Prof. SP 1(64 位),FF 56.0.2(64 位),GM 3.17

Greasemonkey,第 4 版之前的版本,不只是遵循 xml 文件。它还使用了一个 *.db 文件,并在启动时扫描了脚本文件夹。多年来一直没有必要弄乱任何一个配置文件。

无论如何,问题中的方法几乎是重新安装不适用于该 GM 版本的脚本的唯一方法。您通常不能只将 @require@resource 复制回损坏的配置。 Greasemonkey 仍然很困惑。

这应该可以解决问题:

  1. 将所有必需的 local 文件从有问题的脚本目录复制到既不在系统临时路径中也不在 gm_scripts 文件夹中的工作目录。
    我建议使用文件夹树或 Git 存储库等来 preserve/track Firefox 外部的脚本。
  2. 使用 Greasemonkey 的脚本管理器,卸载旧脚本(如果存在)。
  3. 关闭 Firefox。使用任务管理器确保没有 Firefox 进程留在内存中。
  4. 在包含 *.user.js 文件的工作文件夹中,确保所有 @required 或 @resourced、 的文件本地,存在。
    如果 @require@resource 路径指向可行的服务器路径,则该文件不需要在本地驱动器上(Greasemonkey 将在脚本安装时重新获取它一次)。
  5. 重新启动 Firefox。
  6. 从 windows 资源管理器中,将 *.user.js 文件拖放到 Firefox 上。这应该会提示它安装脚本。
  7. 确认安装后,Firefox 将正确复制本地文件(并获取任何网络文件)并且脚本应该 运行 正确。




额外功劳:由于 当前 版本的 Firefox (57+) 和 Greasemonkey (4+) 严重瘫痪和功能失调,请考虑迁移到 Tampermonkey 和更好的浏览器。事实上,Greasemonkey itself recommends migrating to Tampermonkey or Violentmonkey.

到目前为止,我发现 the UR Browser 是最具扩展性和稳定性的,没有 Chrome 的邪恶 "grabbyness"。 (Opera 打破更多 scripts/extensions;Vivaldi 很有前途但有缺陷;其他人有各种各样的问题。)