如何检查控制台中是否存在特定错误?

时间:2019-02-04 14:40:49

标签: javascript jquery html

一个WordPress插件或以前的程序员编写的代码与WordPress管理栏冲突,导致它始终可见。如果您是管理员,则不会出现任何错误,但是,如果您是访问者,则会看到控制台错误。

我想做的是,每当您在控制台中看到此错误时,请隐藏管理栏。由于通常访客不会看到管理栏,因此我正在尝试快速破解。

错误如下

Uncaught TypeError: Cannot read property 'addEventListener' of null

这是我尝试过的方法,经过一些研究,我从here中学到了这一技巧:

jQuery(document).ready(function($) {
  var original = window.console
  window.console = {
    error: function() {
      //Gets text from error message.
      errorText = arguments['0'];

      if (errorText.includes('TypeError')) {
        jQuery("#wpadminbar").css("display", "none");

      }

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

});

我知道我将JavaScript和jQuery混合使用-稍后将解决此问题,但我只是想检查一下这种破解是否可行。它不起作用,甚至没有执行该功能,还有其他方法可以检查控制台错误吗?

2 个答案:

答案 0 :(得分:2)

问题已解决,由于所有人都正确地坚持我不应该使用JS,所以我开始研究他的代码,发现他离开了functions.php

show_admin_bar(true);

我将其删除,问题已解决:)

答案 1 :(得分:0)

这可行,并且daniel提到的onerror也可行,我之所以选择jQuery是因为从理论上讲,它提供了更广泛的浏览器兼容性,如果我错了,请纠正我。该解决方案与控制台无关,这很棒。

jQuery(document).ready(function( $ ){
  window.addEventListener('error', function(e) {
        if (e.error.name == 'TypeError'){
          jQuery("#wpadminbar").css("display", "none");
        }
    });

});

但是我不喜欢那样。作者很少,访客太多,因此,我默认将其隐藏,否则以其他方式显示,因为访客站立一秒钟后将看到该条,然后会发生错误并且该条将消失。

我希望默认情况下不显示错误,然后如果没有错误,这意味着如果事件处理程序没有触发,那么我想显示该栏。但是我不知道该怎么做,如果不使用偶数监听器,我也不知道该怎么做。