如何恢复已被网站禁用的console.log()函数?

时间:2013-12-08 23:37:50

标签: javascript google-chrome console google-chrome-devtools console.log

更新:控制台无法登录的原因是该站点运行此脚本:

    // Production mode
    // Disable console.log
    console.log = function() {};

我猜是没有办法让这个功能恢复到网站上?

之前的问题:

我在Chrome控制台中运行一个跟随网站上每个人的脚本。页面上有200个人,我想遍历所有跟随按钮并通过在控制台中运行此脚本来全部点击它们:

javascript:var inputs = document.getElementsByClassName('btn-follow'); 
for(var i=0; i<inputs.length; i++) { 
inputs[i].click();
}
console.log("The btn-follow script has finished");

脚本点击了按钮,但日志语句返回undefined

有没有办法从控制台内登录控制台?

当我直接尝试console.log时,它看起来像这样:

enter image description here

以下是输入“console”时输出的内容:

enter image description here

3 个答案:

答案 0 :(得分:10)

您可以使用delete消除带阴影的属性:

delete console.log;

原始的log函数(存在于console的原型中)从未被覆盖 - 它只是被console实例上的属性所遮蔽。你可以delete实例函数,让原始的原型函数通过。

答案 1 :(得分:2)

这对我有用:

screenshot

我提交的日志语句(蓝色)后面是效果(消息,黑色)和日志表达式的返回类型(灰色)。

修改

确认您没有以某种方式更换控制台。您可以尝试以下方法:

screenshot

答案 2 :(得分:2)

  

我猜是没有办法让这个功能恢复到网站上?

由于您使用的是Chrome并且可以使用Object.getPrototypeOf,因此可以执行以下操作:

var original_log = Object.getPrototypeOf(console).log;

log方法在原型上定义。