2010-09-10 40 views
3

我只是想嚇壞了。我現在必須在一個其他人做的網站上工作,並且我被要求維護等。它使用jQuery和一堆drupal模塊。在一些點我得到一些語法錯誤,所以一些js的作品,有些不。我的大問題是找到語法錯​​誤。 Firebug和WebInspector都沒有給我正確的信息:找不到JavaScript語法錯誤

Error: uncaught exception: Syntax error, unrecognized expression: // 

是的......就是這樣。沒有線,沒有文件名,沒有更多的提示。有沒有人有一個想法如何處理這個?

感謝您的任何有用的提示。

+0

我很驚訝,這是可能的。即使它生成了正在評估的代碼,「eval()」錯誤仍然比您的示例更具信息性。 – slikts 2010-09-10 14:30:25

回答

3

你可能會嘗試一個像closure compiler這樣的工具,它會給出代碼塊的警告和錯誤。否則,它是蠻力與alert('checkpoint');來確定你的代碼在事情破裂之前有多遠。

+0

我建議使用Firebug的'console.log()'而不是'alert()',因爲關閉警報窗口很煩人。 – slikts 2010-09-10 14:25:21

2

我相信Chrome的控制檯會指出錯誤的行....右鍵點擊頁面> Inspect元素,然後在彈出的窗口的右下角點擊紅色的X圖標,然後點擊的鏈接錯誤上,使如有必要資源跟蹤...

而且,把代碼低谷的JSLint和糾正相應的代碼...

1

我註釋掉所有,但一個JavaScript的包括啓動如果可能的話,一次在html中(除非它們是混亂的依賴關係)。除此之外,你可以嘗試使用調試器逐行掃描它嗎?最後,如果沒有太多的工作,也許值得編寫單元測試。它還將幫助您充分了解該人員的代碼,並可能識別出更深層次的邏輯級別錯誤。

+1

我只是有一個想法...也許他們使用了一些令人討厭的無用的try-catch塊...你知道,這種類型: 'try {...} catch(exception){console.debug(「there was一個錯誤。「)}' ... – 2010-09-10 14:31:58

1

JSLint可能是你需要的,但我敢打賭,它發現更多的問題,而不僅僅是你難以捉摸的語法錯誤。