2008-10-24 15 views
11

Estoy escribiendo un código de javascript que se lee como una cadena y se ejecuta a través de eval() con una extensión de Firefox. Firebug "ve" mi script así que no puedo usar puntos de interrupción, ver objetos, etc.Depuración de scripts similares a greasemonkey

Actualmente estoy usando la consola de error de Firefox que estoy empezando a encontrar limitado. ¿Cuáles son mis otras opciones? Idealmente, podría usar Firebug o algo similar. ¿Cómo la gente generalmente depura los scripts de Greasemonkey?

He intentado utilizar Lint y otros validadores, pero mi script utiliza muchos objetos y funciones proporcionados por el entorno de extensión, lo que hace que muchos de los errores informados sean irrelevantes. Además, la salida tiende a ser demasiado quisquilloso (enfoque de problemas de espaciado, etc.).

Respuesta

1

Por lo que yo sé, Firebug apoya eval() depuración desde 1.1, específicamente para Greasemonkey, puede utilizar GM_log para el registro básico, le puede resultar útil también estas herramientas:

2

He creado una consola interactiva para la depuración G scripts de reasemonkey. Requiere Google Gears, pero incluye un historial persistente de los comandos que se escribieron.

ACTUALIZACIÓN: Here's a link a una publicación de blog que describe el uso de GreasyThug para depurar un script de GM. Tiene un procedimiento paso a paso para replicar un error y diseñar una solución.

1

Estoy usando este código con el fin de poder acceder a la página de DOM con jQuery (sin necesidad de cortes unsafeWindow) y registrar los errores a Firebug consola:

(function(_, $){ 
    try { 
    var GM_log = function(obj) { _.console.log(obj); } 

    // $("#my_div").reaplaceWith("hello world!"); 
    // _.someFunctionDefinedInTheWebsite(); 

    } catch(e) { 
    GM_log(e); 
    } 
})(unsafeWindow, unsafeWindow.jQuery); 

NOTA: Este ejemplo asume que la página a la que está accediendo ya usa jQuery

Cuestiones relacionadas