我有一个gm脚本,其中包含以下内容:
...
// @grant GM_addStyle
...
// @resource css my.css
...
GM_addStyle(GM_getResourceText('css')) // the error occurs here
...
gm从其config.xml
(偶尔发生)扔掉了此脚本,因此:
- 我将脚本文件夹重命名为
/*.OLD
, - 创建了一个具有相同名称的新脚本,
- 将所有文件(
*.css
等)从*.OLD
复制到新脚本文件夹,除了脚本文件(<name>.user.js
)本身, - c&amp;在
/*.OLD/<name>.user.js
到新创建的脚本文件的代码。
现在它再次运行,但抛出:
Error: No resource with name "css"
为什么?资源是上面声明的,它存在于脚本的文件夹中。(声明和实际文件名之间也没有上限/较低的案例差异。)
update
Windows 7教授SP 1(64位),FF 56.0.2(64位),GM 3.17
greasemonkey,Pre版本4,不仅是通过XML文件进行的。它还使用了*.db
文件,并在启动时扫描了脚本文件夹。多年来,都不需要用任何一个配置文件弄乱。
无论如何,问题中的方法几乎是重新安装不起作用GM版本的脚本的唯一方法。通常,您不能仅在损坏的配置上复制@require
或@resource
。greasemonkey仍然感到困惑。
这应该解决:
- 复制所有必需的, local 文件,从有问题的脚本的目录到既不在系统温度路径中的工作目录,也不是GM_Scripts文件夹。
我建议使用文件夹树或git存储库等。保存/跟踪Firefox之外的脚本。 - 使用GreaseMonKey的脚本管理器,卸载旧脚本(如果存在)。
- 关闭Firefox。使用任务管理器确保没有Firefox进程保留在内存中。
- 在具有
*.user.js
文件的工作文件夹中,确保存在所有@require
d或@resource
d,局部的文件。
如果@require
或@resource
路径指向可行的服务器路径,则该文件不必在本地驱动器上(GreaseMonKey将在脚本安装上进行一次将其置换)。 - 重新启动Firefox。
- 从Windows Explorer,将
*.user.js
文件拖放到Firefox上。这应该提示它安装脚本。 - 确认安装后,Firefox将正确复制本地文件(并获取任何网络文件),并且脚本应正确运行。
额外的信用:由于Firefox(57 )和GreaseMonKey(4 )的当前版本严重残废且功能失调,因此考虑迁移到Tampermonkey和更好的浏览器。实际上, GreaseMonKey本身建议迁移到Tampermonkey或暴力monkey。
到目前为止,我发现UR浏览器既是最宽敞,最稳定的,而没有Chrome的邪恶" Grabbyness"。(Opera打破了更多的脚本/扩展; Vivaldi很有希望,但有障碍;其他人已经出现了各种问题。)