问法:
捕获方式:
- 即时性错误:try-catch
- window.onerror
- 资源加载错误:object.onerror
- performance.getEntries()获取到所有已经加载的资源
- Error事件捕获:
window.addEventListener('error',function(e){console.log(e)},true)
//第三个参数必须是true,表示这是捕获阶段
跨域的js错误:
- 可以捕获到跨域的js错误,但是不会有详细的错误信息,只会显示script error
- 解决方案:
- 在script标签增加
crossorigin
属性 - 设置js资源响应头
Access-control-allow-origin:*
- 在script标签增加
上报错误的基本原理:
- Ajax通信的方式上报
- 利用Image对象上报