我的web項目中有一個JavaScript錯誤,並且此錯誤僅在Safari 5 Web瀏覽器中出現。問題是Safari說只是錯誤消息,但沒有文件和行出現此錯誤的位置。所以,我無法找到哪個代碼導致這個錯誤。有誰知道我怎麼能找到代碼行導致這個錯誤?在Safari Web瀏覽器中調試Javascript
這是用調試器拍攝的。 http://xmages.net/storage/10/1/0/d/c/upload/691ce801.png
感謝您的幫助。
我的web項目中有一個JavaScript錯誤,並且此錯誤僅在Safari 5 Web瀏覽器中出現。問題是Safari說只是錯誤消息,但沒有文件和行出現此錯誤的位置。所以,我無法找到哪個代碼導致這個錯誤。有誰知道我怎麼能找到代碼行導致這個錯誤?在Safari Web瀏覽器中調試Javascript
這是用調試器拍攝的。 http://xmages.net/storage/10/1/0/d/c/upload/691ce801.png
感謝您的幫助。
點擊「停止標誌」圖標,直到它變成藍色,然後重新運行代碼。這應該使調試器停止在產生異常的線路上(並允許您在該點檢查本地變量和執行堆棧)。
我點擊了,但沒有發生。 – 2012-03-14 23:36:37
你確定你點擊了正確的按鈕嗎?我正在談論左下方的八邊形按鈕,旁邊的花括號重新編碼, – hugomg 2012-03-15 01:51:30
啊哈......是的,我點擊了錯誤的按鈕。 :)謝謝,下次我會嘗試。 – 2012-03-16 13:41:04
感謝您的幫助!
現在問題已解決。這是jQuery模板插件。當模板中的某個DOM元素的ID與模板變量名稱相同時,會導致此錯誤。 E. G.
var template = "<div id="foo">${foo}</div>"
var data = {foo: "bar"}
$.tmpl(template, data)
解決方案:重命名模板變量名的ID。
var template = "<div id="foo">${bar}</div>"
var data = {bar: "bar"}
$.tmpl(template, data)
錯誤消息表明它在一個已傳遞給eval()函數的字符串中,因此沒有行號。 – Alnitak 2012-03-13 11:50:41
在這種情況下,它看起來像是發生在一些jQuery代碼中。 – 2012-03-13 12:00:12
更可能在其中一個第三方插件中。只要在源文件中搜索該文本行,就不太可能出現多次。 – Alnitak 2012-03-13 12:04:05