我正在尝试使用Greasemonkey Userscript,但它会不断抛出
“遗失;陈述前”
在Javascript错误控制台中。
Greasemonkey文档说应该忽略行号,但是由于脚本很长,所以知道错误发生的位置将非常有帮助。我怎么知道?
编辑:所以,长话短说。行号在最新的Greasemonkey版本中是正确的。
最佳答案
最新版本的Greasemonkey似乎可以充分报告行号,但是仍然最好在Firebug控制台中调试和测试尽可能多的脚本,然后再在Greasemonkey脚本中使用它。
而且,正如missingno所说,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的控制台上得到了它:
1号线1
2号线
3号线3
这是在Firefox的错误控制台(CtrlShiftJ)上:
单击链接将产生:
缺少真正的调试功能,没有比这更好的了。
关于javascript - Greasemonkey调试,获取实际行号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9618434/