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

时间:2018-01-23 11:48:33

标签: javascript

我试图检测控制台错误发生的时间。我已经看过这里,看过2条建议

window.onerrortry catch

以下内容展示了一个问题,即没有抓住这个问题" (按照下面的代码,抓住了,我希望看到alert,但我不会。)

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登录)#

1 个答案:

答案 0 :(得分:2)

尝试将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中测试]