2010-07-25 65 views
3

我有一些舊的JavaScript代碼從2000-2002左右哪個(令人驚訝的)仍然在IE中工作,但不在Firefox,Chrome,Opera等。我已經發現了一些怪癖,一些瀏覽器做這樣的事情,另一個。所以在互聯網上有代碼片段來創建一些瀏覽器平臺獨立功能。如何調試javascript?

現在我的問題是,甚至找到問題。現在,網站上有按鈕,當我點擊它們時,IE中發生了一些事情,但Firefox什麼都沒做。甚至沒有errormsg。我嘗試了一下JavaScript Firebug,但是在代碼中的某個時候,當我執行下一個調試步驟時,腳本似乎中止了,沒有任何錯誤消息。它不會繼續下一個陳述。很奇怪,我不知道是什麼原因或如何修復它。 :/

那麼如何調試javascript,以便我得到錯誤消息告訴我什麼問題是,例如,我使用的是什麼函數/變量沒有在Firefox中定義或當我使用錯誤的參數。

THX &問候 馬克

+0

Firebug將是你最好的朋友,擅長這一點。確保你正在進入函數調用,而不是他們。但是你仍然應該看到錯誤。如果您發佈代碼,我們可以成爲您的朋友;) – Matt 2010-07-25 21:18:15

+0

(Google)Chrome開發人員工具也非常方便。您可能會看到如果您使用這些警告或問題,他們可能會幫助您在Firefox中修復它。 – 2010-07-25 21:20:38

+0

如果你的代碼在IE中運行,但不是其他瀏覽器,你的代碼是錯誤的:D(上帝,我討厭IE瀏覽器!!!) – 2010-07-26 01:01:58

回答

2

Firefox不會彈出錯誤消息或將它們置於狀態欄(如IE)。您必須打開錯誤控制檯才能查看錯誤。

Firefox將Javascript錯誤放入錯誤控制檯,但也包含HTML和CSS錯誤和警告。

至於什麼可能無法在代碼中工作,有很多東西是IE特定的,並不適用於任何其他瀏覽器。在怪癖模式下IE和標準兼容模式下IE也有很大的區別。在頁面中放入一個適當的文檔類型,以使其在符合標準的模式下呈現,這將使IE更像其他瀏覽器,並且刪除一些IE特定的怪癖。這可能會導致您的舊腳本停止工作,在這種情況下,您知道這可能是導致問題的一些IE特定功能。

+0

錯誤控制檯非常有幫助。我仍然遇到了一個問題,它無法正常工作,也沒有任何東西顯示出來,但是其他所有控制檯都顯示或者幫助直接解決問題,或者暗示我可以谷歌。 :) – marc40000 2010-07-26 00:58:22

2

FireBug,但它僅適用於Firefox瀏覽器。

編輯:你好,你已經在你的問題中提到過這個。

+2

某些東西(「我嘗試通過JavaScript Firebug」),讓我覺得他知道Firebug。 – Matt 2010-07-25 21:19:02

+0

@Matt,是的,我完全贊同,也許如果我讀完整個問題,我可能已經收集了有用的信息;'); – 2010-07-25 21:20:51

3

firefox for firefox是好的。 safari和chrome的控制檯IMO更好。在任何一種情況下,右鍵單擊該頁面,點擊「檢查元素」,然後單擊彈出窗格中的「控制檯」選項卡。現在您會看到頁面生成的任何錯誤和警告。

如果你真的想調試腳本,你可以點擊「腳本」選項卡,並立即暫停執行或設置一個斷點。然後,您可以逐行執行腳本,隨時檢查調用堆棧和監視列表。

+0

Chrome控制檯的小建議:將代碼分割成文件,就像使用定期的應用程序,使測試和調試更快,更容易。控制檯顯然會顯示發生錯誤的文件名,這會讓生活變得更容易一些。 – 2010-07-25 21:24:36