【问题标题】:Hide Javascript error message from browser从浏览器隐藏 Javascript 错误消息
【发布时间】:2011-07-24 08:41:01
【问题描述】:

我在其中一个问题上找到了此代码示例;

window.onerror = function (msg, url, linenumber) {  

 //make ajax call with all error details and log error directly into the elmah database

 //show friendly error msg here to user

 //hide error from browser
 return true; 
}

'hide error from browser' 是什么意思,我该怎么做?

我不知道这样的东西存在,我尝试使用 try-catch 块。发生错误后,我意识到浏览器仍然显示错误。如何隐藏浏览器的错误?

更新

我尝试了以下代码并将其放在我所有页面的 head 部分,但注意到发生了;

<script type="text/javascript">

(function () {

    window.onerror = function myErrorHandler(errorMsg, url, lineNumber) {

        alert(errorMsg);

        // Just let default handler run.
        return true;
    }

})();

</script>

【问题讨论】:

  • 回复:您更新的问题 - 在出现错误之前不会发生任何事情。
  • @adam :) 当然我提出了一个错误,但仍然没有发生任何事情
  • @seoul 在 Chrome 上,当我打开 js 控制台时,当我使用 try-catch 块时错误仍然存​​在。我不想那样。
  • 它们仍然会出现在 js 控制台中——这就是控制台的作用。
  • @adam 没办法隐藏我猜,否则我们需要深入研究。

标签: javascript jquery dom-events client-side


【解决方案1】:

使用:尝试...捕捉

function message()
{
    try
    {
        adddlert("Welcome guest!");
    }
    catch (err)
    {
        txt = "There was an error on this page.\n\n";
        txt += "Error description: " + err.description + "\n\n";
        txt += "Click OK to continue.\n\n";
        alert(txt);
    }
}

更多:https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch

【讨论】:

    【解决方案2】:

    当函数返回 true 时,这会阻止触发默认事件处理程序。

    如果此函数返回 true,这只是浏览器的行为方式。

    See more

    【讨论】:

      【解决方案3】:

      将 window.onerror 函数添加到 head 部分并返回 true 将停止将错误事件记录到浏览器控制台。

      正如@Decko 提到的那样,返回 true 会阻止触发默认事件处理程序。

      Stackblitz - https://stackblitz.com/edit/web-platform-mfattr?file=index.html

      【讨论】:

        猜你喜欢
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多