2012-05-16 8 views
5

he creado un "Hello World" script de Greasemonkey en Firefox que contiene una sola línea de código:GM_log y otras funciones de GM no funcionan en los scripts de Greasemonkey

GM_log("Hello World"); 

Esto no parece funcionar, por lo al menos no produjo ninguna salida en mi consola Firebug.
Lo mismo con otras funciones como GM _... GM_wait

cuando reemplacé:

GM_log("Hello World"); 

con:

alert("Hello World") 

funcionó (por lo que los jefes de la escritura no son el problema).

también han establecido las siguientes opciones about:config en true:

  • javascript.options.showInConsole
  • extensions.firebug.showChromeErrors
  • extensions.firebug.showChromeMessages

hay alguna otra configuración para cambiar de funciones GM _... a trabajar en scripts de Greasemonkey?

¿Tengo que cambiar otras configuraciones de Firebug para que se muestren los mensajes de GM_log en la consola de Firebug?

Respuesta

1

me gustaría recomendar que se olvide de GM_log() y uso:

console.log('hello world'); 

http://wiki.greasespot.net/GM_log

como se dice ", ya que GM_log sólo mostrará una única cuerda a la vez, los usuarios con Firebug instalado puede prefiere usar console.log en su lugar ".

Pero sobre su pregunta, no podría decir por qué.

+0

Gracias. Funcionó con console.log. También reemplacé GM_wait con una función javascript "normal". Extraño, que otras funciones de GM todavía funcionan sin problemas (GM_xmlhttpRequest). –

3

¿Dónde obtienes GM_wait? Eso no es a GM function; algunas personas solo nombran sus funciones ad-hoc. Tenga en cuenta que GM version 0.9.19 broke a lot of timing functionality, pero esto se corrigió en la versión 0.9.20.

Como para GM_log(), eso funciona pero no siempre pone su mensaje en una ubicación sensata. En versiones posteriores de Greasemonkey, GM_log() escribe en la consola de error de Firefox - que se puede abrir pulsando Ctrl ShiftJ.
Pero, as Comentarist said, ya no hay una buena razón para usar GM_log. Es de funcionalidad limitada y no funciona bien.

Todos los buenos navegadores ahora admiten console.log() de forma nativa (no se requiere Firebug), pero en Firefox, esto también tiende a to output to Firefox's Error Console.

Para utilizar Firebug's excellent logging functions (vale la pena un vistazo), que actualmente debe utilizar unsafeWindow así:

unsafeWindow.console.clear(); 
unsafeWindow.console.log ("Hello World!"); 
1

La razón de esto es un nuevo especial metadatos Bloque imperativo: @grant, añadido en GM 1.0. Si necesita que GM_log funcione, debe agregar esta línea en su secuencia de comandos Bloque de metadatos: "// @grant GM_log" , de lo contrario, no funcionará. Puede leer sobre esta característica en http://wiki.greasespot.net/@grant.

Cuestiones relacionadas