JavaScript中的window.onerror


本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/02/02/JavaScript%E4%B8%AD%E7%9A%84window-onerror/

摘要

本文主要讲述了:

  1. 作用
  2. 事件监听

正文

作用

  • 监听 JavaScript 错误
  • 监听资源(例如:图片、脚本)加载错误(使用捕获模式时)

注意:后续在控制台内输入的 JavaScript 代码的错误并不会触发该事件

事件监听

示例:

learn_error/index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
<!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>Document</title>
</head>
<body>
<script src="js/index.js"></script>
<script src="js/test.js"></script>
</body>
</html>

learn_error/js/index.js

1
2
3
4
5
6
7
window.onerror = function (message, filename, lineno, colno, error) {
console.log(message); // 错误事件对象
console.log(filename); // 错误的JavaScript文件的URL
console.log(lineno); // 错误行数
console.log(colno); // 错误列数
console.log(error); // 错误对象
};

learn_error/js/test.js

1
abc;

示例:

learn_error/index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!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>Document</title>
</head>
<body>
<script src="js/index.js"></script>
<script src="js/test.js"></script>
<script src="js/doesNotExist.js"></script>
<img src="img/doesNotExist.png" alt="doesNotExist.png" />
</body>
</html>

learn_error/js/index.js

1
2
3
4
5
6
7
8
9
10
11
12
window.addEventListener(
'error',
function (event) {
console.log(event); // 错误事件对象
console.log(event.message); // 错误信息
console.log(event.filename); // 错误的JavaScript文件的URL
console.log(event.lineno); // 错误行数
console.log(event.colno); // 错误列数
console.log(event.error); // 错误对象
},
true
);

learn_error/js/test.js

1
abc;

参考资料

本文作者: jsweibo

本文链接: https://jsweibo.github.io/2019/02/02/JavaScript%E4%B8%AD%E7%9A%84window-onerror/


本文对你有帮助?请支持我


支付宝
微信