在Google Chrome中清除JavaScript控制台


215

我想知道是否可以使用某些命令清除控制台。

console.log(),可以打印...是否有清除控制台的命令?

我尝试过console.log(console);并在下面获得此功能...

assert: function assert() { [native code] }
constructor: function Console() { [native code] }
count: function count() { [native code] }
debug: function debug() { [native code] }
dir: function dir() { [native code] }
dirxml: function dirxml() { [native code] }
error: function error() { [native code] }
group: function group() { [native code] }
groupEnd: function groupEnd() { [native code] }
info: function info() { [native code] }
log: function log() { [native code] }
markTimeline: function markTimeline() { [native code] }
profile: function profile() { [native code] }
profileEnd: function profileEnd() { [native code] }
time: function time() { [native code] }
timeEnd: function timeEnd() { [native code] }
trace: function trace() { [native code] }
warn: function warn() { [native code] }
__proto__: Object

[我想没有办法清理控制台...但是我想让别人对我说...]


Answers:


310

更新:截至2012年11月6日,console.clear()现在可以在Chrome金丝雀。


如果您输入clear()控制台,它将清除它。

我认为没有办法以编程方式进行此操作,因为它可能会被滥用。(控制台已通过某些网页清除,最终用户无法访问错误信息)

一种可能的解决方法:

在控制台类型中window.clear = clear,则可以在页面上的任何脚本中使用clear。


3
...... javascript函数是clear()...是同一回事。
chakrit 2010年

1
一种可能令人讨厌的场景:有人使用clear命令开发了一个网页,并将其转化为生产代码。您导航到该页面,并且出现故障。由于页面已清除控制台,您无法弄清楚原因。
cobbal 2010年

38
console.clear()现在在Chrome中可用。在金丝雀中尝试。
保罗·爱尔兰

23
当光标聚焦在控制台上时,您只需按CTRL + L。所有控制台输出将被擦除。
丽都2014年

17
请注意,clear()如果选中了“导航时保留日志” ,则无效。
beatgammit

130

总是有个好办法:

console.log("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

或以上的简短变化:

console.log('\n'.repeat('25'));

我知道这不是最优雅的解决方案:) ...但是可以。

对于我来说,我通常只打印一条长长的“ -----”分隔线以帮助使日志更易于阅读。


109
当您无法使用手术刀时,请使用斧头。+1
mVChr

41
console.log(new Array(24 + 1).join('\n')做同样的事情,但是要短得多。:)
nyuszika7h 2011年

15
@ Nyuszika7H如果您追求简洁:console.log(Array(25).join('\n'))。指定Array不带new运算符的情况下调用构造函数将返回一个数组。
alex 2012年

2
不错的建议。我正在准备使用console.info作为“演示者备注”的网络演示(遵循Christian的建议),这就是我想出的,以防万一我不记得要分配window.alertvar hasClear = (typeof clear == 'function'); if(hasClear) clear(); console.info('bla'); if(!hasClear) console.log(Array(18).join('\n'));
Ronny 2012年

1
我会选择硬编码的字符串,因为它更易读。您可以看一秒钟,然后确切地知道它的作用。而且我想也可以提高性能。
凯文·惠勒


20

如果您使用console.clear(),这似乎适用于chrome。注意,它将输出“控制台已清除”消息。

我通过累积大量Javascript错误进行了测试。

请注意,清除控制台后我立即收到错误消息,因此它不会禁用控制台,只会清除它。另外,我只在chrome中尝试过此功能,所以我不知道它是如何跨浏览器的。

编辑:我在Chrome,IE,Firefox和Opera中对此进行了测试。它可以在Chrome,MSIE和Opera的默认控制台中使用,但不能在Firefox中使用,但是,它可以在Firebug中使用。


这是唯一对我有用的建议。铬。
杰米·哈特诺尔

17

Chrome控制台的“清除”按钮

如果您只想在调试时清除控制台,则只需单击“禁止圆圈” 按钮以清除console.log。

或者,只需按“ Ctrl + L”以使用键盘清除控制台。


13

铬:

console._commandLineAPI.clear();

苹果浏览器:

console._inspectorCommandLineAPI.clear();

您可以创建自己的变量,该变量在两种情况下均可使用:

if (typeof console._commandLineAPI !== 'undefined') {
    console.API = console._commandLineAPI;
} else if (typeof console._inspectorCommandLineAPI !== 'undefined') {
    console.API = console._inspectorCommandLineAPI;
} else if (typeof console.clear !== 'undefined') {
    console.API = console;
}

之后,您只需使用即可console.API.clear()


5
这只能通过Chrome上的控制台本身运行,在这种情况下,您也可以直接使用clear()
pimvdb 2012年


9

Press CTRL+Llog即使已选中Preserve log选项,清除的快捷方式。
希望这可以帮助。


1
使用clear()了这么长时间,但我从未想到要使用Bash臭名昭著的clear-terminal快捷方式。:) 谢谢!
iamdanchiv

7

在Mac上,您也可以⌘+K像在Terminal中一样使用。


这是thead最有用/最实用的解决方案。谢谢!:)
Mg Gm

5
console._inspectorCommandLineAPI.clear()

那在工作


2
Uncaught TypeError: Cannot call method 'clear' of undefined
Reigel


4

cls在Chrome中进行本地调试时,请使用以下别名(在控制台中输入以下JavaScript):

Object.defineProperty(window, 'cls', {
    get: function () {
        return console.clear();
    }
});

现在cls在控制台中输入将清除控制台。


4

方便的多个答案汇编,用于以编程方式(从脚本而不是控制台本身)清除控制台:

if(console._commandLineAPI && console._commandLineAPI.clear){
    console._commandLineAPI.clear();//clear in some safari versions
}else if(console._inspectorCommandLineAPI && console._inspectorCommandLineAPI.clear){
    console._inspectorCommandLineAPI.clear();//clear in some chrome versions
}else if(console.clear){
    console.clear();//clear in other chrome versions (maybe more browsers?)
}else{
    console.log(Array(100).join("\n"));//print 100 newlines if nothing else works
}


3

根据Cobbal的回答,这是我所做的:

在我JavaScript,我把下列:

setInterval(function() {
  if(window.clear) {
    window.clear();
    console.log("this is highly repeated code");
  }
}, 10);

在您指定ASSIGN window.clear之前,条件代码将不会运行(这意味着直到您这样做之前,您的日志为空)。在调试控制台类型中:

window.clear = clear;

Violà-清除自身的日志。

Mac OS 10.6.8-Chrome 15.0.874.106


3

Chrome浏览器- 在聚焦控制台输入的同时按CTRL+ L

Firefox- clear()在控制台输入。

Internet Explorer- 在集中控制台输入的同时按CTRL+ L

边缘- 聚焦控制台输入时按CTRL+ L

祝你有美好的一天!


2

MacOS上

  1. 铬- CMD+K
  2. Safari- CMD+K
  3. Firefox-无捷径

Linux上

  1. 铬- CTRL+L
  2. Firefox-无捷径

Windows上

  1. 铬- CTRL+L
  2. IE浏览器- CTRL+L
  3. 边缘- CTRL+L
  4. Firefox-无捷径

要使其在Firefox中工作,userscripts可以使用。下载GreaseMonkeyFF扩展名。

document.addEventListener("keydown",function(event){
    if(event.metaKey && event.which==75) //CMD+K
    {
        console.clear();
    }
});

在脚本中,使用值更新元数据//@include *://*/*,以使其在每个页面上运行。仅当焦点位于页面上时,它将起作用。这只是一个解决方法。


1

我认为由于“安全问题”,该功能不再可用。

console.log(console) 从代码给出:

Console
memory: MemoryInfo
profiles: Array[0]
__proto__: Console

从代码外部,可以使用_commandLineAPI。有点烦人,因为有时我只想登录而不看到旧的输出。


1
确定对象上可用的方法时,请不要忘记遵循原型链:)
alex

-1

我将添加到此,因为它是在Google上排名最高的搜索。

当使用ExtJS / Javascript时,我将其插入并清除了控制台-除非出现错误。

console.log('\033[2J');

我很可能会偏离路线,但这是我为每个页面加载/刷新清除控制台的方式。


您应该重组语言,以使其成为更合适的答案。
Dov Benyomin Sohacheski
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.