javascript - 无法找到回调处理程序

标签 javascript debugging firebug handler

website 上我试图找出当我在“State/UT”的第一个选择框中选择时调用的部分,随后填充“District/City”选择框。

我在 Firefox 上使用 Firebug,并在 WebResource.axd 文件中的所有函数中打开了断点。我还在 Firebug 中尝试了 Break on Next 选项,但它会将我带到 ScriptResource.axd 中的一些缩小代码。

我想在“District/City”中捕获 AJAX 调用的返回数据,这样我就可以使用 PHP 通过 POST 提交获取 VIEWSTATE 和 EVENTVALIDATION 值来链接下一次调用。

我找不到 AJAX 回调处理程序部分。如何找到它?

选择框的 onchange 处理程序有:

javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$ddlSate\',\'\')', 0)

但是当我在其中设置断点时,脚本执行不会在此函数中停止。

最佳答案

Chrome DevTools 有一种非常有用的方法可以在这种情况下停止脚本执行。在 Elements 面板中,您可以右键单击任何节点并在上下文菜单中选择 Break On...。它有几个选项,但对于这种情况,子树修改是正确的开始方式(AJAX 响应是一个 HTML 片段,因此 JavaScript 很可能会更改网页的 DOM)。

这是堆栈跟踪:

JavaScript call stack

f._onReadyStateChange 绑定(bind)我们的 AJAX 就绪状态事件。它可以通过其在调试器中可见的 _url 变量来证明。我没有探索那里发生了什么。总之,e._updatePanel() 在第 1158 行将响应中的 HTML 插入到 DOM 中:

b.innerHTML = g

请注意,这是 formatted script 的行号,而实际的脚本被缩小了。

关于javascript - 无法找到回调处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671532/

相关文章:

c++ - Eclipse项目运行问题

windows - 调试寄存器替代品?

c++ - 使用 Visual Studio 2008 C++ 加速移动调试的提示

javascript - 使用 Firebug 调试 JavaScript 事件

javascript - 如何通过变量在 JavaScript (Firebug) 中搜索变量?

javascript - Selenium +火狐 : How can I go with both Firefox binary specification and Firebug extension addition?

javascript - AngularJS 中的 `element` 和 `iElement` 有区别吗?

javascript - jquery、javascript - 如何从变量中删除此参数

javascript - 使用 switch 语句创建新变量

javascript - 如何从函数外部访问局部变量?