如何将Greasemonkey脚本发布为Firefox附加组件?

时间:2012-07-26 10:57:09

标签: javascript firefox-addon greasemonkey

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

2 个答案:

答案 0 :(得分:10)

虽然您可以“编译”GreaseMonkey脚本(请参阅Brock的答案),但此解决方案并不完全受到支持。更可靠的选择是使用Add-on SDKJPM。您的lib/main.js文件非常简单(page-mod module documentation):

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 is supported(适用通常的警告)。

答案 1 :(得分:4)

只需将您的脚本发布在 userscripts.org 1 OpenUserJS.org(或其他一个userscripts.org替换件)。
试图将其作为附件重新打包通常比它的价值更麻烦。


如果您真的必须,可以使用the Greasemonkey script compiler将您的脚本变成“加载项”,然后submit that add-on to Mozilla, via the normal add-on process

请注意,Wladimir的答案优于Greasemonkey脚本编译器。



1 Userscripts.org is now long dead