Ant*_*n23 4 javascript google-chrome
我有导致 js 错误的 html 页面和一个全局处理程序。
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>
<script type="text/javascript">
$(function () {
window.onerror = function (errorMsg, url, lineNumber) {
alert('Error: ' + errorMsg + ' Script: ' + url + ' Line: ' + lineNumber);
}
throw new Error("this is error");
});
</script>
</head>
<body>
<div>Test page</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我收到警报:“错误:脚本错误。脚本:行:0”。如您所见,缺少错误信息。我如何在此处获取此信息,就像我可以在开发人员工具中看到错误一样。任何 chrome 扩展都不适合。我必须在 javascript 中使用他们的信息来捕获错误。
当从不同来源加载的脚本中出现语法 (?) 错误时,不会报告语法错误的详细信息以防止信息泄漏(请参阅错误 363897)。相反,报告的错误只是“脚本错误”。在某些浏览器中,可以使用 crossorigin 属性并让服务器发送适当的 CORS HTTP 响应标头来覆盖此行为。解决方法是隔离“脚本错误”。并在知道错误详细信息只能在浏览器控制台中查看而无法通过 JavaScript 访问的情况下处理它。
我也遇到了这个。请参阅此处的注释部分:https : //developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
这意味着开发设置可能需要进行一些调整以避免此政策问题。我只是在这里猜测,所以不要认为这是理所当然的。
使用console.log(errorMsg, url, lineNumber)而不是警报以获得更具可读性的日志。您可以在浏览器开发者控制台中看到登录信息。您还可以检查try..catch的使用,以更好地处理错误。