我正在尝试检测控制台错误何时发生。我查看了这里并看到了 2 个建议
window.onerror
和
try catch
下面演示了一个未“捕获”的问题(通过捕获,根据下面的代码,我希望看到警报
,但我没有)。
window.onerror = function(error) {
alert("window error..." + error );
}
const arr = [];
try{
arr.push({
'firstValue':'Me 'And' You',
'otherValue':5
});
}catch(err){
alert("Error..." + err);
}
导致问题的部分是
'firstValue':'Me 'And' You',
原因是这行代码是如何生成的,我怀疑真正的解决方法是纠正这个问题(使用 MVC.NET Razor)
'firstValue': '@Model.MyStringWithNoFormattingOrChecking'
其中 MyStringWithNoFormattingOrChecking
的值为 Me 'And' You
但是,我的问题是为什么 onerror
或 try catch
不起作用。或者我可以做些什么来使用 javascript 捕获这个(我实际上没有显示警报,我通过 Ajax 登录)
最佳答案
尝试将 onerror
代码放入其自己的脚本标记中,该标记会早于此语法错误运行。
这段代码可以实现你想要的功能
<head>
<script type="text/javascript">
window.onerror = function(error) {
alert("window error..." + error );
}
</script>
<script type="text/javascript">
const arr = [];
try{
arr.push({
'firstValue':'Me 'And' You',
'otherValue':5
});
}catch(err){
alert("Error..." + err);
}
</script>
</head>
[在 Firefox、Chome 和 Edge 中测试]
关于javascript - 如何检测 Javascript 中的控制台错误(由于语法错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401008/