2012-05-16 5 views
5

ho creato un "Ciao Mondo" script di Greasemonkey in Firefox che contiene solo una riga di codice:GM_log e altre funzioni di GM non funzionano in script di Greasemonkey

GM_log("Hello World"); 

Questo non sembra funzionare, a almeno non ha prodotto alcun output nella mia console firebug.
Lo stesso con le altre funzioni di GM _... come GM_wait

Quando ho sostituito:

GM_log("Hello World"); 

con:

alert("Hello World") 

ha funzionato (così le intestazioni di script non sono il problema).

ho anche impostare le seguenti opzioni about:config su true:

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

C'è qualche altro impostazione per modificare per le funzioni di GM _... a funziona negli script di Greasemonkey?

Devo modificare altre impostazioni firebug per i messaggi GM_log da mostrare nella console firebug?

risposta

1

vi consiglio di dimenticare GM_log() ed impiego:

console.log('hello world'); 

http://wiki.greasespot.net/GM_log

Come si dice "in quanto GM_log visualizzerà una sola corda alla volta, gli utenti con Firebug installato potrebbero preferisci usare console.log invece. "

Ma a proposito della tua domanda, non saprei dire perché.

+0

Grazie. Ha funzionato con console.log. Ho anche sostituito GM_wait con una funzione javascript "ordinaria". Strano, le altre funzioni GM funzionano ancora senza problemi (GM_xmlhttpRequest). –

3

Dove hai ricevuto GM_wait? Questo non è a GM function; alcune persone chiamano semplicemente le loro funzioni ad-hoc. Si noti che GM version 0.9.19 broke a lot of timing functionality, ma questo è stato risolto nella versione 0.9.20.

Come per GM_log(), che funziona ma non sempre inserisce il suo messaggio in una posizione ragionevole. Nelle versioni successive di Greasemonkey, GM_log() scrive al Console Errore di Firefox - che è possibile aprire premendo Ctrl MaiuscJ.
Ma, as Comentarist said, non c'è più alcun motivo per utilizzare più GM_log. Ha funzionalità limitate e non porta bene.

Tutti i browser migliori ora supportano console.log() in modo nativo (non è richiesto Firebug), ma su Firefox, questo tende anche a to output to Firefox's Error Console.

Per utilizzare Firebug's excellent logging functions (vale la pena dare un'occhiata), è attualmente necessario utilizzare unsafeWindow in questo modo:

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

La ragione di questo è un nuovo speciale Metadata Block imperativo: @grant, ha aggiunto in GM 1.0. Se hai bisogno che GM_log funzioni, devi aggiungere questa riga nello script. Metadata Block: "// @grant GM_log" , altrimenti non funzionerà. È possibile leggere questa funzione allo http://wiki.greasespot.net/@grant.

Problemi correlati