jquery - 如何更改新 Greasemonkey 脚本中的默认元数据?

标签 jquery firefox-addon metadata greasemonkey

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

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

New GM script dialog


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

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


但是,我想要 @require jQuery 并向每个默认脚本添加一个 @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打开时出现问题(¿文件?)。

如何更改默认值 Metadata Block指令?

最佳答案

我明白了you have already opened a feature request ,这是处理这个长期问题的正确方法。

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

  1. 关闭 Firefox。
  2. 找到您的Firefox profile folder .
  3. 为了更加安全,请保存您的个人资料文件夹的备份副本。
  4. 找到 Greasemonkey 扩展包。它将位于 extensions 子文件夹中,通常命名为 {e4a8a97b-f2ed-450b-b12d-ee​​082ba24781}.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. 重新启动 Firefox。更改应该生效。


注意事项:

  • 如果您不小心,对 .xpi 文件进行这样的编辑可能会导致您的 Firefox 配置文件损坏!
  • 理论上,您甚至可能需要在某些损坏后卸载并重新安装 Firefox。
  • 每次推出新版本的 Greasemonkey 后,您都必须重新进行此更改。

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

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

如果您有更多技能,您可以 fork 代码,向 GM 添加自定义元数据功能,并发起拉取请求。这涉及更多。

关于jquery - 如何更改新 Greasemonkey 脚本中的默认元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236366/

相关文章:

oracle - ALL_PROCEDURES View 不显示 PROCEDURE_NAME

javascript - jQuery 中的 .append 无法正常工作

javascript - 当输入文本中写入内容时,如何通过 jquery 启用 jsf 中的命令按钮

javascript - 在 JavaScript 中调用另一个函数中的函数的问题

javascript - 如何使用 Chrome/Firefox 扩展阻止将新节点添加到 DOM?

javascript - Firefox 扩展 (SDK) 中的内容脚本添加事件监听器

firefox - 在 Firefox 插件中使用 simple-prefs 模块

java - Hibernate 元数据的唯一性

javascript - 输入类型之间的 DOM/jQuery 事件传播差异

javascript - 如何在 Javascript 中提取本地镜像的元数据?