将console.log重置为其默认功能

时间:2019-07-16 08:26:50

标签: javascript default console.log

在一个实时网站上,我之前已将console.log更改为:

var console = {};
console.log = function () {};

在始终执行此代码的情况下,是否可以/如何在此代码后恢复控制台功能?

这是必需的,因为该网站是实时的。但是我需要做进一步的开发,而不需要对实时站点进行任何更新。没有控制台日志的/信息很难。

非常感谢

3 个答案:

答案 0 :(得分:4)

如果该代码未在顶层运行,因为id = kUPDATE [sf_notif_msg_template] SET [subject] = '{|Form.Title|}' WHERE [id] = '9FC119BA-FD37-6072-98E5-FF000022C5F7'; 上,则可以引用console,例如:

window

如果代码在顶层运行,并且您使用的是window.console.log(() => { var console = {}; console.log = window.console.log; console.log('foo'); // or, just reference window: window.console.log('bar'); })();(而不是ES5 const),则可以执行以下操作:

let

否则,在用var重新分配const console = {}; console.log = window.console.log; console.log('foo');之前,您必须保存对console.log的引用:

console

但是,除非绝对必要,否则创建/覆盖内置全局变量可能不是一个好主意-第一个片段中的IIFE可能更可取。

答案 1 :(得分:1)

当我写这篇文章的时候,我知道这已经是 1 年零 8 个月大了,但我碰巧找到了一个很好的解决方案。

您可以设置一个全局变量,该变量将在网站加载时获取 window.console 对象,以及另一个名为“console”的全局变量,以便随时获取旧的控制台状态。

var oldConsole = window.console;
var console = {};

因此,当您需要将控制台重置为其正常功能时,您只需执行以下操作:

console = oldConsole.log; // since it's 'window.console.log'
console.log('Hello, world!'); // this output will now display on devtools with its default configuration

答案 2 :(得分:-2)

尝试将其设置为window.console

console = window.console;
相关问题