14

我的用户脚本使用console.log().

这在 Chrome 中运行良好,但是当我在 Firefox (Greasemonkey) 中安装此用户脚本时,Firefox 中的 Web 控制台没有显示任何内容。

我搜索了一个解决方案,并建议使用一些解决方案,unsafeWindow但它也没有显示任何输出。而且unsafeWindow不能用于镀铬。我什至安装了 Firebug,但没有用。我该如何解决这个问题?

例如,我在 Firefox 中尝试了这个用户脚本:

// ==UserScript==
// @name        console
// ==UserScript==
console.log("hello");
4

3 回答 3

19

你的意思是它在通过 Greasemonkey 安装时不起作用,对吧?
不久前,Greasemonkey 破坏了 console.log(新!错误报告)。现在,要查看来自 Greasemonkey 的普通console.log()调用的结果,您需要查看Firefox 的错误控制台,而不是 Firebug 的。

您可以通过按以下方式查看 FF 的错误控制台:CtrlShiftJ

但是,您可以unsafeWindow.console.log()在 Chrome 和 Greasemonkey 脚本中使用。Chrome 现在对unsafeWindow.

如果您使用unsafeWindow,则可以从 Greasemonkey访问Firebug 的全部日志功能。(必须安装 Firebug,但它们可能仍然无法在 Chrome 用户脚本中运行;我已经有一段时间没有测试过这种方式了。)


在 Firefox 中,如果 Firebug 未安装,或者该页面未激活,则unsafeWindow.console.log()调用将显示到新的“Web 控制台”( CtrlShiftK)。
您需要unsafeWindow在 Greasemonkey 脚本中使用 when 。

请注意,Firefox 当前支持console.log()console.info()console.warn()console.error()本机 - 不需要 Firebug。

于 2012-04-13T05:53:40.157 回答
5

等一下:如果问题是关于使用 Greasemonkey 登录控制台(我可以发誓我看到了标签),为什么不使用该GM_log方法?

// ==UserScript==
// @name          GM_log Example
// @namespace     http://www.example.com/
// ==/UserScript==

GM_log("This is an example of GM_log");

还是我错过了什么?

PS:你也可以javascript.options.showInConsole在 about:config 中查看。它应该是true

于 2012-04-14T04:24:15.300 回答
1

我发现(使用 Chrome/Tampermonkey 进行测试)您需要:

window.log("<message goes here>");, not unsafeWindow.console.log("<msg>");, asunsafeWindowconsoleundefined。

试试看,因为我很确定这是你在更高版本的浏览器等中应该这样做的方式。

于 2017-06-28T16:08:29.673 回答