2012-05-16 2 views
5

Я создал «Hello World» Greasemonkey скрипт в Firefox, который содержит только одну строку кода:GM_log и другие функции GM не работают в Greasemonkey скрипты

GM_log("Hello World"); 

Это не похоже, не функционирует, в по крайней мере, он не производил никаких выходных данных в моей консоли firebug.
То же самое с другими ГМ _... функции, такие как GM_wait

Когда я заменил:

GM_log("Hello World"); 

с:

alert("Hello World") 

он работал (так заголовки сценариев не проблема).

Я также установить следующие параметры about:config к истинным:

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

есть другие настройки, чтобы изменить для функций GM _... к работать в сценариях Greasemonkey?

Должен ли я изменить другие настройки firebug для сообщений GM_log для отображения в консоли firebug?

ответ

1

Я рекомендую вам забыть о GM_log() и использования:

console.log('hello world'); 

http://wiki.greasespot.net/GM_log

Как он говорит, «поскольку GM_log будет отображать только одну строку, в то время, пользователи с Firebug установлены может предпочитают вместо этого использовать console.log. "

Но о вашем вопросе, я не мог сказать, почему.

+0

Спасибо. Он работал с console.log. Я также заменил GM_wait «обычной» функцией javascript. Странно, что другие функции GM по-прежнему работают без проблем (GM_xmlhttpRequest). –

3

Где вы нашли GM_wait? Это не a GM function; некоторые люди просто называют свои специальные функции. Обратите внимание, что GM version 0.9.19 broke a lot of timing functionality, но это было исправлено в версии 0.9.20.

Что касается GM_log(), это работает, но не всегда ставит его сообщение в разумном месте. На более поздних версиях Greasemonkey, GM_log() пишет в консоль ошибок Firefox - который можно открыть, нажав Ctrl СдвигJ.
Но, as Comentarist said, нет веских оснований для использования GM_log. Он имеет ограниченную функциональность и плохо переносится.

Все хорошие браузеры теперь поддерживают console.log() изначально (не требуется Firebug), но на Firefox это также имеет тенденцию to output to Firefox's Error Console.

Чтобы использовать Firebug's excellent logging functions (стоит посмотреть), вы в настоящее время необходимо использовать unsafeWindow так:

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

Причиной этого является новый специальный Metadata Блок императив: @grant, добавил GM 1.0. Если вам нужен GM_log для работы, вы должны добавить эту строку в свой сценарий Блок метаданных: "// @grant GM_log" , иначе это не сработает. Вы можете прочитать об этой функции по адресу http://wiki.greasespot.net/@grant.

Смежные вопросы