8

我有一个基于 javascript 通过 ajax\https(s) 请求与网络服务器通信的富 Internet 应用程序,其中我使用了一些外部 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 network throttling to offline

我什至尝试了以下事情:

  • 在 window 对象的方法 onerror 中钩子
  • 为窗口对象添加事件“ononline”和“onoffline”的事件监听器
  • 控制导航器对象的“在线”属性

这些解决方案都不能捕获 net::ERR_INTERNET_DISCONNECTED 错误消息。

我怎样才能注意到 net::ERR_INTERNET_DISCONNECTED 错误消息?BOM 对象之一(控制台、窗口、导航器等)中是否存在某些函数或事件,我可以在其中添加事件侦听器或函数中的挂钩以捕获此错误消息?

4

0 回答 0