2012-03-13 100 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) 
相关问题