2

我想在元数据中为新的 Greasemonkey 脚本添加一个默认条目。

目前,当您使用New UserScript...菜单时,您会看到这样的对话框(我填写了最少的必填字段,剪贴板是空的):

新建 GM 脚本对话框


这给出了一个像这样的新脚本:

// ==UserScript==
// @name        _Sample default Greasemonkey script
// @namespace   _pc
// @include     http://stackoverflow.com/questions/*
// @version     1
// ==/UserScript==


但是,我想要@requirejQuery@author并向每个默认脚本添加一个字段。因此,默认代码如下所示

// ==UserScript==
// @name        _Sample default Greasemonkey script
// @namespace   _pc
// @include     http://stackoverflow.com/questions/*
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @author      me
// @version     1
// ==/UserScript==


我该怎么做呢?当我编辑greasemonkey.jar(在文件夹扩展名中)并添加以下行时:@require http://[link to jquery from google]它不起作用并且Greasemonkey 有问题打开(¿文件?)。

如何更改默认的元数据块指令?

4

1 回答 1

2

我看到你已经打开了一个功能请求,这是处理这个长期的正确方法。

对于一个快速而肮脏的临时修复——它只对你有效,并且只在下一次 Greasemonkey 更新之前有效,你可以执行以下操作:

  1. 关闭火狐。
  2. 找到您的Firefox 配置文件文件夹
  3. 为了更加安全,请保存您的个人资料文件夹的备份副本。
  4. 找到 Greasemonkey 扩展包。它将位于extensions子文件夹中,通常命名为{e4a8a97b-f2ed-450b-b12d-ee082ba24781}.xpi.
  5. 使用 zip 文件工具(如7-Zip)打开.xpi文件。
  6. 查找并提取content\newscript.js.
  7. 在第 124 行之前script.push("// @version 1");,添加以下行:

    script.push("// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js");
    script.push("// @author      me");
    script.push("// @grant       GM_addStyle");
    

    GM_addStyle一点是为了防止默认 GM 脚本的常见问题——尤其是那些添加 jQuery 的脚本。

  8. 将更改的内容更新newscript.js.xpi文件中。

  9. 重启火狐。更改应该生效。


注意事项:

  • 如果您不小心,对此类文件进行编辑.xpi可能会损坏您的 Firefox 配置文件!
  • 从理论上讲,您甚至可能必须在某些损坏后卸载并重新安装 Firefox。
  • 在每个新版本的 Greasemonkey 之后,您都必须重新进行此更改。

如果你有技能的话,一个稍微少一点问题的方法是:(1) fork source,(2) change newscript.js,正如我上面详述的,(3) 更改扩展 ID,以及 (4) 安装你的 fork 版本。

这将是:记录在案、风险更小、更持久,并允许您在已发布的 GM 和您自己的版本之间快速切换。

如果您有更多技能,您可以分叉代码,向 GM 添加自定义元数据功能,然后发起拉取请求。这是相当多的参与。

于 2013-06-22T01:37:45.990 回答