我正在尝试捕获所有错误并将其显示在元素内的页面上。
我在Chrome开发者网站上找到了this article。在bottom of the page它说我可以设置一个回调函数,只要发现错误就会调用,使用window.onerror
:
在我的文件中,我写道:
window.onerror = function(message, url, line) {
document.write(`
<p>window.onerror was invoked with message = ${message}</p>
<p>url = ${url}</p>
<p>line = ${line}</p>
`)
}
在下面,我故意写了一个错误,看它是否会被抓住:
var a = function() {
b() // b is undefined
}
a()
正如预期的那样,我收到了CodePen上文档中写的错误消息:
然而令人惊讶的是,当我在本地文件上尝试此操作时,它既不会捕获错误消息(返回Script error.
),网址,也不会捕获行号:
为什么不记录错误消息?我做错了什么吗? 是否与我在本地文件上测试它的事实有关?
我已经尝试使用webpack在localhost上进行了上述操作,但它确实有效。这似乎只有在本地文件上使用时才能工作。