Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Greasemonkey调试,获取真实的行号_Javascript_Greasemonkey - Fatal编程技术网

Javascript Greasemonkey调试,获取真实的行号

Javascript Greasemonkey调试,获取真实的行号,javascript,greasemonkey,Javascript,Greasemonkey,我正试图让Greasemonkey用户脚本正常工作,但它一直在抛出 “缺少;在语句之前” 在Javascript错误控制台中 Greasemonkey文档说应该忽略行号,但由于脚本相当长,因此了解错误发生的位置将非常有帮助。我怎么知道 编辑:长话短说。在最近的Greasemonkey版本中,行号是正确的。最新版本的Greasemonkey似乎充分报告了行号,但在Greasemonkey脚本中使用之前,最好在Firebug控制台中调试和测试尽可能多的脚本。 而且,正如missingno所说,可以很

我正试图让Greasemonkey用户脚本正常工作,但它一直在抛出 “缺少;在语句之前” 在Javascript错误控制台中

Greasemonkey文档说应该忽略行号,但由于脚本相当长,因此了解错误发生的位置将非常有帮助。我怎么知道


编辑:长话短说。在最近的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和样式不一致。