将控制台错误检索到 html

Retrieving console errors to html

我的问题与其他类似的帖子不同。

AutoCAD 为开发人员提供了一种在应用程序内部显示 URL 页面的方法。我为我的公司创建了一个内部网站,希望用户可以通过桌面浏览器或他们的 AutoCAD 应用程序进行浏览。

问题是 AutoCAD 使用的浏览器是 Chrome 版本 33(当前为 84)- 也无法更新或更改浏览器。

我无法在 AutoCAD 中“检查”或调试站点 - 我发现 v84 和 v33 有很多不同之处。我现在正在尝试诊断错误,但同样,我无法访问 AutoCAD 浏览器中的控制台日志。

有没有办法让我“提醒”控制台试图给我的任何错误? (即:页面找不到脚本引用,出现意外的'.'等...)

注意 - 我的网站在最新的 Chrome 浏览器(桌面浏览器上的 v84)上运行良好,但有些小东西在 v33(在AutoCAD 浏览器)。

如果您控制网站,您可以在 window 上附加一个侦听器以侦听任何未处理的异常。在所有其他脚本之前添加它以确保捕获所有内容。

window.on('error', (e) => {
  // if error is intresting, do work.
  alert(e.message);
});

处理程序接受一个 ErrorEvent 对象。

注意 - 这不会捕获在跨域脚本中触发的错误。例如,如果您正在加载 google 地图,并且在该脚本中触发了错误,您通常会得到 'Script error.' 而没有其他信息。这与跨源策略有关。您可以阅读更多 here.

如果您需要专门捕获发送到 console.error 的数据,您可以简单地代理该函数。除了明确调用 console.error 且不推荐的代码外,这可能不会捕获任何内容。

const error = console.error;
console.error = (...args) => {
  // alert(...);
  error.apply(console, args);
}