我的用户使用console.log()
打印一些信息。
这在Chrome中运行良好,但是当我在Firefox(Greasemonkey)中安装此用户脚本时,Firefox中的Web控制台没有显示任何内容。
我搜索了一个解决方案,有些人建议使用unsafeWindow
,但它也没有显示任何输出。此外unsafeWindow
不能用于镀铬。我甚至安装了Firebug,但没用。我该如何解决这个问题?
例如,我在Firefox中尝试了这个用户脚本:
// ==UserScript==
// @name console
// ==UserScript==
console.log("hello");
答案 0 :(得分:16)
你的意思是当它通过Greasemonkey安装时不起作用,对吧?
不久前,Greasemonkey broke console.log(新!Bug report)。现在,要查看来自Greasemonkey的普通console.log()
调用的结果,您需要查看 Firefox的错误控制台,而不是Firebug。
按下以下内容可以看到FF的错误控制台: Ctrl Shift J 。
但,您可以在Chrome和Greasemonkey脚本中使用unsafeWindow.console.log()
。 Chrome现在对unsafeWindow
的支持有限。
如果您使用unsafeWindow
,则可以访问Greasemonkey的全部Firebug's logging functions。 (必须安装Firebug并且它们仍然可能无法在Chrome用户脚本中使用;我暂时没有测试过这种方式。)
在Firefox中,如果未安装Firebug,或者页面未激活,则unsafeWindow.console.log()
调用将显示在新的“Web控制台”中( Ctrl < / KBD> 移 ķ)。
您需要在Greasemonkey脚本中使用unsafeWindow
。
请注意,Firefox目前仅支持console.log()
,console.info()
,console.warn()
和console.error()
- 不需要Firebug。
答案 1 :(得分:5)
等一下:如果问题是关于使用Greasemonkey登录控制台(我可以发誓我看到标记greasemonkey),为什么不使用GM_log
方法?
// ==UserScript==
// @name GM_log Example
// @namespace http://www.example.com/
// ==/UserScript==
GM_log("This is an example of GM_log");
或者我错过了什么?
PS:您还可以在about:config中检查javascript.options.showInConsole
。它应该是true
。
答案 2 :(得分:1)
我发现(使用Chrome / Tampermonkey测试)您需要的是:
window.log("<message goes here>");
而非unsafeWindow.console.log("<msg>");
由于unsafeWindow
和console
未定义。试试这个,因为我很确定你应该在以后版本的浏览器中这样做。