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 错误的主要内容,如果未能解决你的问题,请参考以下文章
UserScripts & Greasemonkey:调用网站的 JavaScript 函数
从 Chrome 上的 Greasemonkey 脚本将 JS 函数注入页面