【问题标题】:Checking if specific console error occurred/exists with javascript使用 javascript 检查是否发生/存在特定的控制台错误
【发布时间】:2015-06-29 00:10:32
【问题描述】:

我想检查是否使用 javascript 发生了某个控制台错误,如果有,请alert()我自己。

错误将如下所示:

00:00:34:0359 TimeEvent.COMPLETE
    (anonymous function) @ VM17617:1

算法看起来像这样:

function checkError(console) {
    if(console.error === "TimeEvent.COMPLETE") {
        alert("The error is present");
    }
}

我对控制台不是很熟悉,对 Google 的研究也没有深入了解。有人能指出我正确的方向吗?

【问题讨论】:

  • 尝试挂钩触发错误的实际事件不是更好吗?
  • @Jan:那是我最初的计划,但我也想不通。这是活动:try { __flash__toXML(console.error("00:02:30:0596 TimeEvent.COMPLETE")) ; } catch (e) { "<exception>" + e + "</exception>"; } 有什么想法吗?
  • 它必须驻留在某个函数或方法中。您可以获取该方法,向其中注入一些内容,然后用您自己的日志记录覆盖它。

标签: javascript jquery console.log


【解决方案1】:

我最终通过关注this blog post 使用 javascript 接管控制台解决了我的问题。

这是我的最终代码:

var original = window.console
window.console = {
    error: function(){      

        //Gets text from error message.
        errorText = arguments['0'];

        if (errorText.includes('TimeEvent.COMPLETE')) {
            //DO STUFF HERE
        }

        original.error.apply(original, arguments)
    }
}

【讨论】:

    【解决方案2】:

    您没有提供有关控制台如何以及何时收到错误的完整信息。如果您自己提出错误,或者如果您能够在 try catch 中捕获它,那将是拦截这些错误的最佳位置。

    但是,如果您无法控制如何引发这些错误,则应尝试拦截控制台的错误调用。我自己从未尝试过,但这SO answer 解释了如何拦截控制台的log 调用。知道控制台通常有一个名为 error 的函数,它类似于 log 函数,我相信您可以应用相同的逻辑来拦截发送到控制台的错误。

    如果您使用的是 chrome,您可以参考console documentation 了解有关错误功能的更多详细信息。我不确定是否有标准但Internet ExplorerFirefox 也支持控制台error 功能。

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 2022-06-25
      • 1970-01-01
      • 2019-05-22
      • 2015-10-04
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多