在控制台中关闭广告输出/错误

时间:2018-06-07 16:37:10

标签: javascript iframe console ads google-adwords

我们正在网站上展示Google Adwords广告。让我无休止的是,广告将运行时出现错误或正常的console.log()输出,并且该文本会显示在我们的控制台中。我想知道是否有任何方法可以通过Adword的脚本或Javascript来解决这些错误。

广告显示在iframe中。

1 个答案:

答案 0 :(得分:2)

您可以重新定义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);

将控制台对象保存到oldConsole允许您仍然实际输出到控制台,然后重新定义控制台对象允许您更改功能。

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

作为一个说明,这正是发生的事情:

  1. 将对控制台的引用保存到变量oldConsole
  2. 将控制台重新定义为新对象。
  3. 将日志,警告和错误的属性设置为我们自己的功能。
  4. 默认情况下,第二个参数goOut设置为FALSE,这意味着调用console.log(“hello”)会导致goOut变为false(未定义)。
  5. 当您明确将其设置为true时,请调用oldConsole.log(str,true)以实际输出到日志。