击中断点时捕获/阻止页面更改:Firefox

时间:2019-05-08 15:57:06

标签: javascript firefox breakpoints dom-events firefox-developer-tools

我遇到一个问题,即使用Firefox时,未完成的AJAX请求触发某种类型的错误,该错误由我的全局错误处理程序捕获。

结果是在页面更改之前的一秒钟内,出现警报,提示“我们无法与服务器通信”。这是无害的,因为页面正在更改,但是很烦人,我想确定消息内容并在Firefox中避免它。

由于该问题仅在Firefox中止正在运行的AJAX请求时出现,因此我需要在浏览器的页面上重新加载新的请求。

我正在使用Firefox 66.0.3。

根据Mozilla's webdocs,尚无法在“ {new debugger”” like it is in Chrome devtools中中断DOM事件:

Cannot break on DOM events

我有可以附加断点的错误处理代码。不过遗憾的是,任何断点(或debugger语句)都不能 防止 更改页面,因此我无法进行实际调试。

有没有办法让断点 之前捕获,以便我可以研究堆栈/控制台?

1 个答案:

答案 0 :(得分:0)

因此,这不是“完美”的解决方案,而是“ a”解决方案。

为了找到调试所需的必要信息,我所做的就是将日志保留在控制台中。

然后我修改了脚本,以将各种变量和/或堆栈记录到控制台,以便可以调试导致问题出现的请求和浏览器的状态。

对于它的价值,发生的事情是,当用户从页面导航时,在关闭AJAX请求时,在Firefox中调用jQuery ajaxError处理函数,并且将statusText参数设置为“错误”。

为防止处理程序引发错误的“与服务器通信错误”弹出窗口,我检查请求的status是否仍设置为0(未发送/正在加载)。

不,我不确定为什么Chrome不会触发ajax错误处理程序,而Firefox会触发