Javascript Greasemonkey调试,获取真实的行号
我正试图让Greasemonkey用户脚本正常工作,但它一直在抛出 “缺少;在语句之前” 在Javascript错误控制台中 Greasemonkey文档说应该忽略行号,但由于脚本相当长,因此了解错误发生的位置将非常有帮助。我怎么知道Javascript Greasemonkey调试,获取真实的行号,javascript,greasemonkey,Javascript,Greasemonkey,我正试图让Greasemonkey用户脚本正常工作,但它一直在抛出 “缺少;在语句之前” 在Javascript错误控制台中 Greasemonkey文档说应该忽略行号,但由于脚本相当长,因此了解错误发生的位置将非常有帮助。我怎么知道 编辑:长话短说。在最近的Greasemonkey版本中,行号是正确的。最新版本的Greasemonkey似乎充分报告了行号,但在Greasemonkey脚本中使用之前,最好在Firebug控制台中调试和测试尽可能多的脚本。 而且,正如missingno所说,可以很
编辑:长话短说。在最近的Greasemonkey版本中,行号是正确的。最新版本的Greasemonkey似乎充分报告了行号,但在Greasemonkey脚本中使用之前,最好在Firebug控制台中调试和测试尽可能多的脚本。
而且,正如missingno所说,可以很好地抓住这类问题 无论如何,假设我有这样一个脚本:
// ==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 第1行 第2行 第3行3 在Firefox的错误控制台(CtrlShiftJ)上:
点击链接可得到:
如果没有真正的调试功能,就没有比这更好的了。对于语法错误,我非常喜欢使用。它还进行一些简单的静态分析,这也有助于捕获许多bug和样式不一致。