GreaseMonkey - Firefox Web 控制台未显示所有 javascript 错误

Posted

技术标签:

【中文标题】GreaseMonkey - Firefox Web 控制台未显示所有 javascript 错误【英文标题】:GreaseMonkey - Firefox Web console not showing all javascript errors 【发布时间】:2013-12-09 01:18:25 【问题描述】:

Firefox Web 控制台 (Ctrl + Shift + K) 未显示 Firefox 错误控制台中报告的所有 javascript 错误。怎么改?

这很烦人,因为 Firefox 错误控制台已被弃用,needs to be re-enabled explicitely in Firefox configuration.

Web 控制台中未显示的错误示例是访问未定义对象的属性。这种异常只会杀死Javascript运行脚本,如果没有出现在日志中,调试起来很烦人...

var obj = undefined;
obj['whatever'];

这将在错误控制台而不是 Web 控制台中引发错误:

/*
Exception: obj is undefined
@Scratchpad/1:11
*/

请注意,在 Web 控制台中检查了“JS > 错误”,并且在 Web 控制台配置中打开了 Chrome 调试。

编辑:这似乎只适用于 GreaseMonkey 用户脚本(以及暂存器)。

【问题讨论】:

似乎启用了严格模式。转到about:config 并检查javascript.options.strict。此选项将引擎切换到严格模式,这会在错误控制台中为您提供更多错误(请参阅developer.mozilla.org/en/docs/…)。 你用的是什么FF版本?我在使用 Firefox 27 (Aurora) 的 Web 控制台中收到“obj is undefined”错误。 你为什么使用暂存器? 在 Firefox 25 和 Nightly 中为我工作,使用 data:text/html,<script>var obj = undefined; obj['whatever'];</script>。结果是这样的 Web 控制台日志条目:TypeError: obj is undefined @ data:text/html,<script>var%20obj%20=%20undefined;%20obj['whatever'];</script>:1 要查看 Greasemonkey 错误,请打开浏览器控制台 (Ctrl-Shift-J)。将devtools.errorconsole.enabled 设置回false。 Web 控制台是特定于选项卡的——它不包括许多附加活动。浏览器控制台捕获所有可捕获的内容。 Firebug 控制台仍然可以捕获大部分内容。 【参考方案1】:

Brock Adams 在评论中给出的答案:

要查看 Greasemonkey 错误,请打开浏览器控制台 (Ctrl - Shift - J)。 [...] Web 控制台是特定于选项卡的——它不包括许多附加活动。浏览器控制台捕获所有可捕获的内容。 Firebug 控制台仍然可以捕获大部分内容。

加纳尔逊评论:

这对我有用,但只有在浏览器控制台的齿轮菜单中启用“显示内容消息”之后。

【讨论】:

遗憾的是,来自 Greasemonkey 脚本的一些 console.log() 输出在 any 控制台中仍然不可见。我在这里有一个addEventListener('DOMSubtreeModified',它运行和更改变量。我可以看到变量发生了变化,但是所有日志中都缺少适当的console.log() 输出。显然,某些州的某些调用被静音,它们的console.log() 丢失了。 (我还没有找到在 Intranet 之外重现此内容的方法,因此无法演示,抱歉。) devtools.errorconsole.enabled 在我身边是false。我能找到的所有日志记录选项都已启用。但是,浏览器控制台和 Web 控制台都不会显示失败的 Greasemonkey UserScript 中的任何信息。如果脚本编译成功,但如果脚本出现致命编译错误,则 FF 完全静音,就好像脚本根本不存在一样。 这不再有效。看起来错误控制台已被完全删除。如何让 Greasemonkey 错误显示? 这个解决方案是关于浏览器控制台(Ctrl+Shift+J),而不是错误控制台。 这对我有用,但只有在浏览器控制台的齿轮菜单中启用“显示内容消息”之后。

以上是关于GreaseMonkey - Firefox Web 控制台未显示所有 javascript 错误的主要内容,如果未能解决你的问题,请参考以下文章

Greasemonkey Add On无法正常工作

UserScripts & Greasemonkey:调用网站的 JavaScript 函数

火狐浏览器怎样安装GreaseMonkey

从 Chrome 上的 Greasemonkey 脚本将 JS 函数注入页面

如何用 Greasemonkey 的用户脚本替换 JSON 字符串中的文本

Firefox 设置启用跨域 Ajax 请求