我的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