我有一个基于javascript的富Internet应用程序,该javascript通过ajax \ https(s)请求与Web服务器通信,在这里我使用一些外部javascript库(例如qooxdoo)。由于此外部库可以编写错误消息,并且我希望在开发人员工具中没有打开错误控制台的情况下注意到它们,因此我需要通过JavaScript代码在客户端错误控制台(Chrome 47.0)上自动收集错误消息,以将其发送回到网络服务器以进行控制。
为此,我使用如下代码:
var origFunc = console.error console.error = function(){ // special stuff if(origFunc) { origFunc.apply(console, arguments); } }
我在代码中的这个钩子中注意到了许多错误,但是当发生net :: ERR_INTERNET_DISCONNECTED错误时,却没有注意到。我在chrome错误控制台中看到了错误,但是未调用方法“ console.error”。
在chrome开发人员工具内部,可以通过将网络设置为离线来轻松重现此错误:chrome网络限制为离线
我什至尝试了以下方法:
钩住窗口对象中的onerror方法
将事件“ online”和“ onoffline”的事件侦听器添加到窗口对象
控制导航器对象的“在线”属性
此解决方案均无法捕获net :: ERR_INTERNET_DISCONNECTED错误消息。
我如何注意到net :: ERR_INTERNET_DISCONNECTED错误消息?BOM表对象之一(控制台,窗口,导航器等)中是否存在某些函数或事件,可以在其中添加事件侦听器或挂钩函数以捕获此错误消息?