2012-07-26 13 views

Respuesta

4

Justo después de la secuencia de comandos en userscripts.org OpenUserJS.org (o uno de los otros reemplazos userscripts.org).
Tratar de volver a empaquetarlo como un complemento suele ser más problemas de lo que vale.


Si realmente debe, puede utilizar the Greasemonkey script compiler para convertir su escritura en un "complemento", y luego submit that add-on to Mozilla, via the normal add-on process.

Tenga en cuenta que la respuesta de Wladimir es mejor que el compilador de script de Greasemonkey.



Userscripts.org is now long dead.

10

Si bien puede "compilar" un script de GreaseMonkey (consulte la respuesta de Brock), esta solución no es exactamente compatible. La opción más confiable sería usar Add-on SDK y JPM. Su archivo lib/main.js puede ser muy simple (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") 
}); 

Esto es equivalente a la siguiente cabecera script de Greasemonkey:

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

a continuación, agregar el script de Greasemonkey como data/contentScript.js (Add-on SDK ignore el encabezado de GreaseMonkey, la información se especifica en otro lugar) y construya la extensión. En la mayoría de los casos, simplemente funcionará, a menos que su script GreaseMonkey utilice una API especial de GreaseMonkey, en cuyo caso deberá encontrar un reemplazo. unsafeWindow is supported por cierto (se aplican advertencias habituales).

+0

¿Qué quiere decir con "no exactamente bien respaldado"? En el sentido de "no instalar/rara vez" o "código hinchado"? –

+1

@RobW: Quiero decir: "solución antigua que alguien hackearon hace años y que en realidad no se actualizó desde entonces". No es óptimo de varias maneras, como requerir un reinicio del navegador para la instalación de la extensión, pero nadie va a arreglar eso. –

+1

Traté de editar esto, pero no lo aceptaron. Pero este guión exacto ya no funciona. Tuve que modificarlo según la documentación de Mozilla. 'var pageMod = require (" sdk/page-mod "); var self = require ("sdk/self"); pageMod.PageMod ({ incluyen: "*", contentScriptWhen: 'listo', contentScriptFile: [self.data.url ("contentScript.js")] }); ' – trlkly

Cuestiones relacionadas