1.错误的分类
- 即时运行错误:代码错误
(1) try...catch (2) window.onerror /addEventLister
- 资源加载错误(不会冒泡但是可以捕获)
(1) object.onerror(写在标签上) (2)performance.getEntries();可以拿到所有正常加载的资源 是一个数组。
(3)Error事件捕获
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>jsonp 演示</title>
<script type="text/javascript">
window.addEventListener('error',function(e){console.log(e)},true)
//true 捕获 false 冒泡
</script>
</head>
<body>
<script src="http://mkool.com/aa.html" charset="utf-8"></script>
</body>
</html>
js 跨域资源也可以捕获 需要在script 标签添加 crossorigin属性,设置js资源相应头 Access-Control-Allow-Origin:*
上报错误的基本原理
(1)ajax
(2) 用 image对象上报
(new Image).src="http://mook.com/aa.html?a=error"