2012-05-16 24 views
5

我已經創建了在Firefox中的「Hello World」的Greasemonkey腳本,只包含一行代碼工作:GM_log記和其他通用功能在Greasemonkey腳本

GM_log("Hello World"); 

這似乎並沒有發揮作用,在至少它沒有在我的螢火蟲控制檯中產生任何輸出。
同樣與其他通用_...功能,如GM_wait

當我更換:

GM_log("Hello World"); 

有:

alert("Hello World") 

它的工作(這樣的腳本頭都沒有問題)。

我還設置以下about:config選項設置爲true:

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

有一些其他設置爲通用_...功能改變在Greasemonkey腳本中工作?

我是否必須更改GM_log消息的其他螢火蟲設置以顯示在螢幕控制檯中?

回答

1

我建議你忘記GM_log記()和使用:

console.log('hello world'); 

http://wiki.greasespot.net/GM_log

像它說:「因爲GM_log記只能一次顯示一個字符串,用戶使用Firebug安裝,則可能寧願使用console.log代替。「

但是關於你的問題,我不能說爲什麼。

+0

謝謝。它與console.log一起工作。我也用一個「普通的」javascript函數替換了GM_wait。奇怪的是,其他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的錯誤控制檯 - 您可以按CtrlShiftJ
但是,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

這樣做的原因是新的特殊元數據塊勢在必行@grant,加入GM 1.0。 如果您需要GM_log工作,則必須將此行添加到您的腳本元數據塊中: "// @grant GM_log" ,否則它將無法工作。 您可以在http://wiki.greasespot.net/@grant閱讀關於此功能的信息。