2012-05-16 15 views
5

Stworzyłem „Hello World” Greasemonkey skrypt w Firefoksie, która zawiera tylko jeden wiersz kodu:GM_log GM i inne funkcje nie działają w skryptów Greasemonkey

GM_log("Hello World"); 

To nie wydaje się działać, na przynajmniej nie produkowało żadnego wyjścia w mojej konsoli firebug.
To samo z innymi funkcjami GM _... jak GM_wait

Kiedy wymienić:

GM_log("Hello World"); 

z:

alert("Hello World") 

to działało (tak nagłówki skryptów nie są problemem).

Mam również ustawić następujące opcje about:config true:

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

Czy istnieje jakaś inna zmienić ustawienie dla funkcji do GM _... pracować w skryptach Greasemonkey?

Czy muszę zmieniać inne ustawienia firebug dla wiadomości GM_log, aby pokazać je w konsoli firebug?

Odpowiedz

1

polecam Ci zapomnieć o GM_log() i zastosowanie:

console.log('hello world'); 

http://wiki.greasespot.net/GM_log

jak to mówi „od GM_log będzie wyświetlać tylko jeden ciąg w czasie, użytkownicy mogą z Firebug zainstalowany zamiast tego wolisz używać pliku console.log. "

Ale na twoje pytanie nie mogłem powiedzieć dlaczego.

+0

Dzięki. Działa z konsolą.log. Zmieniłem także GM_wait na "zwykłą" funkcję javascript. Dziwne, że inne funkcje GM nadal działają bez problemów (GM_xmlhttpRequest). –

3

Skąd wziął się GM_wait? To nie jest a GM function; niektórzy po prostu nazywają to swoimi funkcjami ad-hoc. Zauważ, że GM version 0.9.19 broke a lot of timing functionality, ale zostało to naprawione w wersji 0.9.20.

Jeśli chodzi o GM_log(), to działa, ale nie zawsze umieszcza swoją wiadomość w rozsądnej lokalizacji. Na nowszych wersjach Greasemonkey, GM_log() pisze do konsoli błędów Firefoksa - który można otworzyć naciskając CtrlSHIFTJ.
Ale, as Comentarist said, nie ma żadnego powodu, aby już używać GM_log. Ma ograniczoną funkcjonalność i nie portuje się dobrze.

Wszystkie dobre przeglądarki obsługują obecnie console.log() (bez potrzeby użycia Firebug), ale w Firefoksie również mają one tendencję do to output to Firefox's Error Console.

Aby korzystać Firebug's excellent logging functions (warto spojrzeć), obecnie muszą używać unsafeWindow tak:

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

Powodem tego jest nowy specjalny Metadane Blok imperatyw: @grant, dodane GM 1.0. Jeśli potrzebujesz GM_log do pracy, musisz dodać tę linię do skryptu Blok metadanych: "// @grant GM_log" , w przeciwnym razie nie będzie działać. Możesz przeczytać o tej funkcji pod adresem http://wiki.greasespot.net/@grant.

Powiązane problemy