2
我試圖讓Greasemonkey的Userscript工作,但它一直拋出 「錯過;在語句」前 在Javascript錯誤控制檯。Greasemonkey調試,獲取實際行號
Greasemonkey文檔說應該忽略行號,但由於腳本非常冗長,所以知道錯誤發生的位置會非常有幫助。我如何知道?
編輯:所以,長話短說。在最近的Greasemonkey版本中,行號是正確的。
我試圖讓Greasemonkey的Userscript工作,但它一直拋出 「錯過;在語句」前 在Javascript錯誤控制檯。Greasemonkey調試,獲取實際行號
Greasemonkey文檔說應該忽略行號,但由於腳本非常冗長,所以知道錯誤發生的位置會非常有幫助。我如何知道?
編輯:所以,長話短說。在最近的Greasemonkey版本中,行號是正確的。
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);
當我在我的系統(操作系統,FF的2運行:10.0.2,GM:0.9.18,螢火蟲:1.9 .1和除GM相同:0.9.17),我得到Firebug的控制檯上:
Line 1 1 Line 2 2 Line 3 3
這個Firefox的錯誤控制檯(按Ctrl 移Ĵ):
點擊鏈接,得出:
缺席真正的調試功能,它沒有得到比這更好。
對於語法錯誤,我真的很喜歡使用[jsHint](http://jshint.org)。它也做了一些簡單的靜態分析,這也有助於捕捉許多錯誤和樣式不一致。 – hugomg 2012-03-08 13:37:32