Greasemonkey调试,获得真实的行号

时间:2012-03-08 13:32:21

标签: javascript greasemonkey

我正在尝试使用Greasemonkey用户工作,但它一直在投掷 “失踪;在陈述之前” 在Javascript错误控制台中。

Greasemonkey文档说应该忽略行号,但由于脚本很长,所以知道错误发生的位置会非常有帮助。我该如何找到?

编辑:所以,长话短说。最近的Greasemonkey版本中的行号是正确的。

1 个答案:

答案 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 ):

Line numbers reported


点击链接会产生:

Source view

没有真正的调试功能,它没有比这更好。