2010-06-14 226 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

相关问题