在一个实时网站上,我之前已将console.log更改为:
var console = {};
console.log = function () {};
在始终执行此代码的情况下,是否可以/如何在此代码后恢复控制台功能?
这是必需的,因为该网站是实时的。但是我需要做进一步的开发,而不需要对实时站点进行任何更新。没有控制台日志的/信息很难。
非常感谢
答案 0 :(得分:4)
如果该代码未在顶层运行,因为id = k
在UPDATE [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;