未捕获的TypeError:无法读取未定义的属性"长度"

mač*_*ček 8 javascript debugging jquery backtrace

我有一个插件,可以访问length许多元素的属性.但是,javascript控制台指向jquery.min.js的第12行.

如何回溯以查找插件中的违规行?

s3m*_*m3n 6

如果您使用缩小的脚本,任何调试器(如完全最好的firebug)将向您显示相同的有问题的行,并且此信息是无用的(缩小的脚本难以阅读和理解,并且它们写在一行中).

几乎没有办法解决这样的问题:

  1. 正如我之前所说的那样:为了开发使用而不是缩小脚本,调试器将向您显示意味着什么的行,如果您很幸运,您可以找到非常有用的开发人员评论.
  2. 如果你找不到完整版本的脚本,可以使用unminifier,如下所示:http://jsbeautifier.org/ (粘贴缩小的脚本并点击下面的按钮).添加到项目的已发布脚本并再次运行无效功能.调试器将再次显示该行,但这次您将看到一条真正的逻辑行,您可以在大多数情况下了解问题所在.
  3. 调试器将显示哪个脚本引发问题.检查此脚本是否有任何新版本.我曾经遇到同样的问题,找到了缩小脚本的行,插件的名称(版权中的几行以上),然后发现有新版本可用.审核了更改日志,并且:" 在整个代码中为潜在的未知属性值添加了多个'健全性检查' " - headshot :)更新了脚本,从现在开始一切都很好,无需特殊调试花费数小时.
  4. 谷歌你的错误与脚本名称 - 它帮了我很多次..可能你做了,但也许你没有尝试语音标记"" - 谷歌将返回文本中的确切短语页面.


Sar*_*raz 4

如何回溯以找到插件中的违规行?

firebug是调试这些错误的好方法。

替代文本
(来源:getfirebug.com