如何在Console中隐藏日志消息的来源?

Ben*_*Ben 28 javascript jquery

将消息输出到控制台时,也会显示来源(在Chrome开发者工具中,它位于右侧):

console.log("Foo");                         //Source
Foo                               test.js:1 //Output
Run Code Online (Sandbox Code Playgroud)

但是,在某些站点上,会显示消息而不显示源,例如在Facebook上:

Facebook.com上的控制台截图

查看Chrome控制台API参考资料,可以看到大量不同输出的示例,但所有输出都显示了源代码.

如何隐藏.js控制台输出的源(页面和行号)?


编辑:只是为了澄清,这不是Facebook如何禁用浏览器的集成开发人员工具?因为该问题解答了控制台如何禁用标准用户输入(其答案解释了它是如何工作的).我特别询问不显示源文件和行的美感.

Der*_*ler 29

他们正在使用setTimeout从源头分离:

setTimeout(console.log.bind(console, '\n%c' + s[0], s[1]));
Run Code Online (Sandbox Code Playgroud)

  • @NirojShrestha想象一下:你传递`setTimeout`一个函数,它应该在以后执行.因此,它将传递给它的函数放置在内存中的某个虚拟空间中,并且它丢失了源自何处的信息.到时候,它将执行该函数,该函数没有行,因为它只是驻留在内存中的某个位置.至少那是我对事物的看法,我对如何在内部执行代码没有深刻的理解. (3认同)
  • `s[0]` 和 `s[1]` 引用什么?消息和 CSS 样式,我想? (2认同)