代码之家  ›  专栏  ›  技术社区  ›  LucyTurtle

关闭控制台中的AD输出/错误

  •  2
  • LucyTurtle  · 技术社区  · 6 年前

    我们正在我们的网站上展示谷歌广告词广告。令我非常恼火的是,广告将运行时出现错误或正常的console.log()输出,文本将出现在我们的控制台中。我想知道是否有什么可以通过adword的脚本或者javascript来关闭这些错误。

    广告以iframe形式出现。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Brandon Dixon    6 年前

    您可以重新定义console.log输出,如下所示:

    var oldConsole = console;
    console = {
        log: function(str,goOut = false) {
        	if (goOut) {
               oldConsole.log(str);
            }
        },
        warn: function(str,goOut = false) {
        	if (goOut) {
                oldConsole.warn(str);
            }
        },
        error: function(str,goOut = false) {
        	if (goOut) {
                oldConsole.error(str);
            }
        }
    }
    
    console.log("this will not appear");
    console.log("This will appear",true);

    将console对象保存到oldconsole允许您仍然实际输出到控制台,然后重新定义console对象允许您更改函数。

    使用此函数,要实际输出某些内容,您需要将true作为第二个参数(默认情况下不会这样做)放到所有console.log输出中,以便它实际显示出来。

    作为一个注释,下面是正在发生的事情:

    1. 将对console的引用保存到变量oldconsole
    2. 将控制台重新定义为新对象。
    3. 将它的log、warn和error属性设置为我们自己的函数。
    4. 第二个参数goout默认设置为false,这意味着调用console.log(“hello”)将导致goout为false(未定义)。
    5. 当显式地将其设置为true时,调用oldconsole.log(str,true)将其实际输出到log。