7

我最近在 Greasemonkey 中编写了一个脚本,并希望将其作为 Firefox 的附加组件发布。最简单的方法是什么?

4

2 回答 2

10

虽然您可以“编译”一个 GreaseMonkey 脚本(请参阅 Brock 的回答),但该解决方案并没有得到很好的支持。更可靠的选择是使用Add-on SDKJPM。您的lib/main.js文件可以非常简单(page-mod模块文档):

var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
  include: "*.example.com",
  contentScriptWhen: 'end',
  contentScriptFile: data.url("contentScript.js")
});

这等效于以下 GreaseMonkey 脚本头:

// @include http://example.com/*
// @include http://*.example.com/*

然后您将 GreaseMonkey 脚本添加为data/contentScript.js(附加 SDK 将忽略 GreaseMonkey 标头,该信息在其他地方指定)并构建扩展。在大多数情况下它会起作用——除非你的 GreaseMonkey 脚本当然使用任何特殊的 GreaseMonkey API,在这种情况下你需要找到一个替代品。unsafeWindow顺便支持一下(通常的警告适用)。

于 2012-07-30T19:26:04.197 回答
4

只需将您的脚本发布到userscripts.org 1 OpenUserJS.org(或其他 userscripts.org 替代品之一)。
尝试将其重新打包为附加组件通常比其价值更麻烦。


如果你真的需要,你可以使用Greasemonkey 脚本编译器将你的脚本变成一个“插件”,然后通过正常的插件流程将该插件提交给 Mozilla

请注意,弗拉基米尔的答案比 Greasemonkey 脚本编译器要好。



1 Userscripts.org 现在早已死去

于 2012-07-26T11:16:56.817 回答