javascript - 调试触发 alert() 的 JS 代码

标签 javascript debugging firebug

我有一个使用 ext-js 库构建的系统。系统的一部分列出了流经在线商店的订单。单击一行时,会显示其他订单详细信息。几天前,单击某行后立即出现一条消息“FIXME:已创建 panelID...”。之后,继续正常运行,即错误消息很烦人,出现后不会中断正常执行。

我正在尝试调试JS代码,看看错误信息是在什么情况下出现的,即为什么突然开始出现。我正在尝试使用 FireBug 来做到这一点。有没有人有任何提示我可以用来实现建立哪一行代码触发 alert() 的目标? 非常感谢任何关于此事的意见。

最佳答案

Firebug 有一个命令行 API 可以以编程方式创建断点。例如:

debug(fn);

为函数 fn 创建一个断点。不幸的是,这不能用于具有 native 代码的函数(内置函数,如 alert)。但是,您可以使用这个技巧。

使用此脚本在您的代码中插入一个脚本 block -

window.alert_ = window.alert;
window.alert = function() {
    alert_.apply(window,arguments)
};

您所做的是用您自己的 window.alert 重新定义它做同样的事情。

现在在 firebug 中附加断点:

debug(alert);

现在,下次脚本调用 alert 时,您将在函数中设置一个断点。然后,您可以分析堆栈跟踪并找出调用它的位置。

关于javascript - 调试触发 alert() 的 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3638249/

相关文章:

javascript - 删除所有具有特定类名的 DOM 元素

javascript - 任何 jquery 插件,如 twitter 自动完成

JavaScript - 与 toString() 相反?

debugging - 有没有办法在gdb或lldb中直接运行Cargo构建的程序?

使用 Firebug 的 Javascript 观察基于表达式的断点?

css - iframe 高度仅在 Firefox 中无法正确显示

javascript - 如何在 javascript/jquery 中为 "24 hours"时间格式添加一小时?

java - assertTrue() 不输入内部函数参数

javascript - 如何检测一个数组被另一个相同的数组替换?

FireBug 的“网络”选项卡未显示 http 响应?