2012-07-26 10 views

risposta

4

Basta inviare il vostro scritto in userscripts.org OpenUserJS.org (o uno degli altri sostituzioni userscripts.org).
Cercare di riconfezionarlo come componente aggiuntivo è di solito più difficile di quello che vale.


Se davvero necessario, è possibile utilizzare the Greasemonkey script compiler per trasformare lo script in un "add-on", e poi submit that add-on to Mozilla, via the normal add-on process.

Si noti che la risposta di Wladimir è migliore del compilatore di script Greasemonkey.



Userscripts.org is now long dead.

10

Mentre è possibile "compilare" uno script GreaseMonkey (vedere la risposta di Brock), questa soluzione non è esattamente ben supportata. L'opzione più affidabile sarebbe utilizzare il Add-on SDK e JPM. Il file lib/main.js può essere davvero semplice (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") 
}); 

Ciò equivale alla seguente intestazione di script GreaseMonkey:

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

e quindi si aggiunge lo script GreaseMonkey come data/contentScript.js (Add-on SDK ignora l'intestazione di GreaseMonkey, le informazioni sono specificate altrove) e crea l'estensione. Nella maggior parte dei casi funzionerà, a meno che il tuo script di GreaseMonkey non usi una speciale API GreaseMonkey, nel qual caso dovrai trovare un sostituto. A proposito (si applicano le normali avvertenze).

+0

Cosa intendi per "non esattamente ben supportato"? Nel senso di "non installa/installa raramente" o "Codice gonfiato"? –

+1

@RobW: Voglio dire: "antica soluzione che qualcuno ha hackerato insieme anni fa e che non aggiorna realmente da allora". È subottimale in molti modi, come richiedere il riavvio del browser per l'installazione dell'estensione, ma nessuno lo risolverà. –

+1

Ho provato a modificare questo, ma non l'hanno accettato. Ma questo script esatto non funziona più. Ho dovuto modificarlo in base alla documentazione di Mozilla. 'var pageMod = require (" sdk/page-mod "); var self = require ("sdk/self"); pageMod.PageMod ({ includono: "*", contentScriptWhen: 'pronto', contentScriptFile: [self.data.url ("contentScript.js")] }); ' – trlkly

Problemi correlati