我正在尝试使用Greasemonkey用户工作,但它一直在投掷 “失踪;在陈述之前” 在Javascript错误控制台中。
Greasemonkey文档说应该忽略行号,但由于脚本很长,所以知道错误发生的位置会非常有帮助。我该如何找到?
编辑:所以,长话短说。最近的Greasemonkey版本中的行号是正确的。
答案 0 :(得分:1)
最新版本的Greasemonkey似乎可以充分报告行号,但在Greasemonkey脚本中使用之前,最好在Firebug控制台中调试和测试尽可能多的脚本。 并且,正如missno所说,jsHint可以很好地解决这些问题。
无论如何,假设我有一个这样的脚本:
// ==UserScript==
// @name _Debugging test
// @include http://YOUR_SERVER/YOUR_PATH/*
// ==/UserScript==
unsafeWindow.console.log ('Line 1', 1 + 0);
unsafeWindow.console.log ('Line 2', 1 + 1);
unsafeWindow.console.log ('Line 3', 1 + 2);
unsafeWindow.console.log ('Line 4 **Throw error here**', 1 + 3 + nonExistantVariable);
unsafeWindow.console.log ('Line 5', 1 + 4);
当我在我的两个系统上运行它时(WinXP,FF:10.0.2,GM:0.9.18,Firebug:1.9.1,除了GM:0.9.17之外),我在Firebug的控制台上得到了这个:
Line 1 1 Line 2 2 Line 3 3
这在Firefox的错误控制台上( Ctrl Shift J ):
点击链接会产生:
没有真正的调试功能,它没有比这更好。