前段错误分类和捕获
- 运行时错误
- try…catch
- window.onerror(只能捕获运行时)
资源加载错误
- object.onerror(如图片,则图片对象加载错误,script同理,并不会进行冒泡)
- performance.getEntries() (高级浏览器有performance对象,getEntries来获取已加载资源的加载时长,相当于间接的获取加载出错的资源文件)
- Error事件捕获:onerror虽然无法冒泡,但是可以捕获
跨域js是否可以捕获?
- 可以捕获
- 第一步需要在script标签增加crossorigin属性
- 第二步要在JS资源响应头添加Access-Control-Allow-Origin
错误上报的基本原理
1.采用Ajax通信方式上报
2.利用Image方式上报
- (new Image()).src = 'http://baidu.com/report?参数'
,实际上就是请求文件方式发请求