2012-03-13 143 views
0

我的web項目中有一個JavaScript錯誤,並且此錯誤僅在Safari 5 Web瀏覽器中出現。問題是Safari說只是錯誤消息,但沒有文件和行出現此錯誤的位置。所以,我無法找到哪個代碼導致這個錯誤。有誰知道我怎麼能找到代碼行導致這個錯誤?在Safari Web瀏覽器中調試Javascript

這是用調試器拍攝的。 Debugger screenshot http://xmages.net/storage/10/1/0/d/c/upload/691ce801.png

感謝您的幫助。

+1

錯誤消息表明它在一個已傳遞給eval()函數的字符串中,因此沒有行號。 – Alnitak 2012-03-13 11:50:41

+0

在這種情況下,它看起來像是發生在一些jQuery代碼中。 – 2012-03-13 12:00:12

+1

更可能在其中一個第三方插件中。只要在源文件中搜索該文本行,就不太可能出現多次。 – Alnitak 2012-03-13 12:04:05

回答

2

點擊「停止標誌」圖標,直到它變成藍色,然後重新運行代碼。這應該使調試器停止在產生異常的線路上(並允許您在該點檢查本地變量和執行堆棧)。

+0

我點擊了,但沒有發生。 – 2012-03-14 23:36:37

+0

你確定你點擊了正確的按鈕嗎?我正在談論左下方的八邊形按鈕,旁邊的花括號重新編碼, – hugomg 2012-03-15 01:51:30

+0

啊哈......是的,我點擊了錯誤的按鈕。 :)謝謝,下次我會嘗試。 – 2012-03-16 13:41:04

0

感謝您的幫助!

現在問題已解決。這是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) 
相關問題