2012-07-26 5 views

Antwort

4

schreiben Sie einfach Ihr Skript bei userscripts.org OpenUserJS.org (oder einer der anderen userscripts.org Ersatz).
Der Versuch, es als Add-on zum Umpacken ist in der Regel mehr Mühe, als es wert ist.


Wenn Sie wirklich müssen Sie the Greasemonkey script compiler verwenden können Ihr Skript in ein „Add-on“, und dann submit that add-on to Mozilla, via the normal add-on process zu drehen.

Beachten Sie, dass Wladimir Antwort ist besser als die Greasemonkey-Skript-Compiler.



Userscripts.org is now long dead.

10

Während Sie „kompilieren“ ein Greasemonkey-Skript (Brock Antwort sehen), ist diese Lösung nicht genau gut unterstützt. Die zuverlässigere Option wäre die Verwendung der Add-on SDK und JPM. Ihre lib/main.js Datei kann wirklich einfach sein (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") 
}); 

Dies entspricht dem folgenden Greasemonkey-Skript-Header:

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

Und Sie fügen Sie dann Ihre Greasemonkey-Skript als data/contentScript.js (Add-on SDK Ignoriere den GreaseMonkey-Header, die Informationen sind an anderer Stelle angegeben) und erstelle die Erweiterung. In den meisten Fällen wird es nur funktionieren - es sei denn, Ihr GreaseMonkey-Skript verwendet natürlich eine spezielle GreaseMonkey-API. In diesem Fall müssen Sie einen Ersatz finden. unsafeWindow is supported übrigens (übliche Warnungen gelten).

+0

Was meinst du mit „nicht exactely gut unterstützt“? Im Sinne von "nicht/selten installieren" oder "aufgeblähter Code"? –

+1

@RobW: Ich meine: „alte Lösung, dass jemand vor zusammen Jahren gehackt und nicht wirklich da war aktualisieren“. Es ist in mehrfacher Hinsicht suboptimal, zum Beispiel erfordert es einen Neustart des Browsers für die Installation der Erweiterung, aber niemand wird das beheben. –

+1

Ich habe versucht, dies zu bearbeiten, aber sie haben es nicht akzeptiert. Aber dieses genaue Skript funktioniert nicht mehr. Ich musste es basierend auf der Mozilla-Dokumentation ändern. 'var pageMod = require (" sdk/page-mod "); var self = require ("sdk/self"); pageMod.PageMod ({ enthalten: "*", contentScriptWhen: 'ready', contentScriptFile: [self.data.url ("contentScript.js")] }); ' – trlkly