GM_log和其他GM功能在Greasemonkey脚本中不起作用

时间:2012-05-16 14:14:52

标签: logging firebug greasemonkey

我在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控制台中显示?

3 个答案:

答案 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。”

但关于你的问题,我不能说为什么。