javascript - 如何检测 Javascript 中的控制台错误(由于语法错误)

标签 javascript

我正在尝试检测控制台错误何时发生。我查看了这里并看到了 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

但是,我的问题是为什么 onerrortry 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/

相关文章:

javascript - html 中的行收缩和展开

javascript - 使选项卡在较小的屏幕上响应

javascript - 如何从所有分片中获取 users.cache 并将它们放入一个集合中,就像 client.user.cache 返回的集合一样?

javascript - 用 Electron 返回多个回调函数中的值时出错

javascript - 如何在 vis.js 中限制 Y 轴和 X 轴的值

javascript - 使用 javascript/jquery 检测移动浏览器的最佳方法?

javascript - 每次点击创建单独和独特的工具提示

javascript - 如何在我的应用程序中发出 POST 请求

javascript - 在加载 Web 表单后加载外部 JavaScript 文件

javascript - 如何在 JavaScript 中压缩图像大小?