2010-06-14 286 views

回答

6

如果使用縮小的腳本任何調試器(如完全最好的螢火蟲)會告訴你同樣的問題的行並將此信息是無用的(精縮腳本難以閱讀和理解,他們都寫在1線)。

一些方法來解決這樣的問題:

  1. 正如我之前說:開發利用不精縮腳本,調試器會告訴你,這意味着什麼行,你如果你是幸運的,你可以找到非常有用開發者的評論。
  2. 如果您找不到完整版本的腳本,請使用unminifier,如下所示:http://jsbeautifier.org/(粘貼縮小的腳本並單擊下面的按鈕)。添加到您的項目uminified腳本並再次運行無效功能。調試器會再次向您顯示這條線,但是這次您會看到一條真實的邏輯線,並且您可以在大多數情況下了解問題所在。
  3. 調試器會告訴你哪個腳本會引發問題。檢查這個腳本是否有任何新版本。我遇到過同樣的問題,找到了縮小腳本的行,插件的名稱(版權中的幾行),然後發現有新版本可用。審查變更日誌,並有:「在整個代碼中添加了多個」可能的未知屬性值的健全性檢查「」 - 爆頭:)更新後的腳本和一切都很好,現在沒有特殊的調試需要幾個小時。
  4. 谷歌你的腳本名稱的錯誤 - 它幫助了我很多次..可能你做到了,但也許你沒有用語音標記嘗試「」 - 谷歌將返回與文本中的確切短語的頁面。
1

如果您使用Chrome,您可以使用內置的開發人員工具(我更喜歡使用Firebug),請轉至"View > Developer > Developer Tools"。在控制檯中的錯誤往往會有一個向前的小箭頭,當點擊它時會顯示有關錯誤的更多詳細信息。

Javascript錯誤不可能起源於庫,而是引用該庫中的方法/函數的代碼,因此您希望查看控制檯右側列出的所有問題行並選擇與你寫的代碼相對應的行將成爲你的問題所在。

您不太可能通過查看jQuery的源代碼來找出問題出在哪裏。問題出在你的代碼中。只是jQuery不能使用你傳遞給它的未定義變量。

+0

我重新描述了我可能含糊不清的問題。我明白錯誤不是來自圖書館;我只是想知道如何回溯到我的插件中查找有問題的行。 – 2013-03-23 19:53:37

+0

@maček我的回答在這方面對你有幫助嗎?我希望如此,這是我的意圖。 – 2013-03-24 20:02:57

0

除了調試器/螢火蟲,一種簡單的方法來追蹤(如果你有一個沙盒版本的網站)是單獨註釋每個插件,並檢查錯誤是否消失。

1

我經常發現這些模棱兩可的框架錯誤是AJAX請求錯誤的結果。如果是這樣,那麼您的開發人員工具最有可能包含一個網絡選項卡,這可能會突出顯示錯誤的真正來源。

如果您使用jQuery(或任何JavaScript框架)來處理AJAX請求的結果,則格式和處理錯誤都是額外的且經常被忽略的步驟。

+0

這聽起來像我所需要的,因爲在我的情況下,導致「Uncaught TypeError:無法讀取屬性長度」未定義「err是我自己的: alert(listId.length> 0?」匹配項目的ID:「+ id:「找不到匹配的項目!」); ...但網絡選項卡沒有顯示任何東西(CDT)。 – 2015-10-13 22:32:42

相關問題