【问题标题】:Debug strategy for Javascript "TypeError: elem.dispatchEvent is not a function" errorJavascript“TypeError: elem.dispatchEvent is not a function”错误的调试策略
【发布时间】:2015-01-05 03:05:42
【问题描述】:

在 Mac OSX 上的 Firefox 24 上使用 jQuery 2.0.3 和 filedrop HTML5 上传脚本时,我在 Firebug 中遇到此错误。

问题在于 Firebug 报告的错误行号看似不正确 - 它总是报告我的 HTML 标记的第 54 行,无论该行是什么 - 我已经尝试更改它。它从不报告实际上是 javascript 的行号。

禁用 Firebug 后,脚本似乎可以正常运行。

所以鉴于这个行号没有任何帮助,我可以使用什么策略来找到这个错误的根源? 我唯一能想到的就是在我的代码中的evey 语句之前和之后添加console.log() 行。有没有更好的方法,或者有没有办法找出这是否是某种观察者效应?

我的尝试:

【问题讨论】:

  • 您是否将调试器设置为break on errors
  • @epascarello 是的,我刚刚尝试在错误时禁用中断并再次尝试 - 错误出现了几十次,这似乎与进度回调有关......击败了我为什么我得到一个奇数行号。
  • 您使用的是最小化版本的代码吗?使用完整版。
  • 只有 jQuery 被最小化了,不过我会尝试使用未最小化的。

标签: javascript jquery firebug


【解决方案1】:

这是 Firebug 1.12.8 之前的一个错误,报告为issue 5939

问题可以通过两种方式解决:

  1. 安装最新版本的 Firebug
    Firebug 2.0 switched to new Firefox debugger APIs,修复了旧 API 的许多错误。

  2. 禁用脚本面板
    如果出于某种原因您不能或不想安装较新版本的 Firebug,您可以暂时禁用 Script 面板,然后重现您的错误。然后应该报告正确的行号。

【讨论】:

  • 禁用脚本面板无效,控制台仍然显示错误的行号。我正在使用 FB 版本 1.12.4 - 感谢您尝试但​​没有骰子:(
  • 嗯,有some other issues在谈论类似的问题。如果您能想出一个可重现的测试用例并将其发布到Firebug discussion group,那就太好了,这样就可以调查这个错误了。
  • 我取出了 fireQuery 并解决了我的问题,我责怪那个扩展。
  • 这也适用于我。禁用 FireQuery 并停止获取 dispatchEvent 后不是函数错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
  • 2021-08-20
  • 2019-07-20
  • 2021-08-01
  • 2018-10-28
  • 2018-07-17
  • 2015-10-11
相关资源
最近更新 更多