我在Firefox中创建了一个“Hello World”Greasemonkey脚本,它只包含一行代码:
GM_log("Hello World");
这似乎没有起作用,至少它在我的firebug控制台中没有产生任何输出 与其他GM _...函数相同,如GM_wait
当我更换时:
GM_log("Hello World");
使用:
alert("Hello World")
它有效(所以脚本标题不是问题)。
我还将以下about:config
选项设置为true:
javascript.options.showInConsole
extensions.firebug.showChromeErrors
extensions.firebug.showChromeMessages
是否有一些其他设置需要更改GM _...功能才能在Greasemonkey脚本中使用?
我是否必须更改GM_log消息的其他firebug设置才能在firebug控制台中显示?
答案 0 :(得分: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 Shift 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 :(得分:3)
这是一个新的特殊元数据块阻止: @grant ,在GM 1.0中添加。
如果需要GM_log工作,则必须将此行添加到脚本元数据块中:
"// @grant GM_log"
,否则它将无法正常工作。
您可以在http://wiki.greasespot.net/@grant了解此功能。
答案 2 :(得分:1)
我建议你忘掉GM_log()并使用:
console.log('hello world');
http://wiki.greasespot.net/GM_log
就像它说“由于GM_log一次只显示一个字符串,安装了Firebug的用户可能更喜欢使用console.log。”
但关于你的问题,我不能说为什么。