- 如何监测JS错误 如何保证产品质量
错误的分类
即时运行错误:代码错误
资源加载错误
错误的捕获方式
即时运行错误的捕获方式
- try-catch:
- window.onerror:只能捕获代码错误,不能捕获资源加载错误,因为资源加载错误不会冒泡
资源加载错误
- object.onerror:不会冒泡,只会触发标签本身的错误
img.onerror
script.onerror
- 高级浏览器的performance对象:performance.getEntries()
performance.geEntries().forEach(item=>{console.log(item.name)})
- Error事件捕获阶段获取标签错误:虽然不会冒泡但是没有阻止捕获
window.addEventListener('error',function(e){
console.log('捕获',e)
},true)
跨域的js的运行错误可以捕获吗,错误提示是什么,怎么处理?
跨域的js可以捕获到,错误提示都是Script error
可以拿到错误信息的方法
- 客户端:在
<script>标签增加crossorigin属性 - 服务器:设置js的响应头Access-Control-Allow-Origin:*
上报错误的基本原理
- 采用Ajax通信
- 利用Image对象进行上报
(new Image()).src = 'http://someUrl.com'