浏览器控制台

浏览器控制台

Web 控制台是 Firefox 4 中添加的首个新的开发者工具,团队从那时起就在每个版本中持续改进它。随着 Firefox 24 进入测试版,我们认为现在是时候重点介绍 Web 控制台中提供的功能并介绍其新的“表亲”——浏览器控制台了。

浏览器控制台取代了久负盛名的错误控制台。要打开它,请按熟悉的 Ctrl+Shift+J 组合键(在 OS X 上为 Command+Shift+J)。

01-Browser Console

  • 切换不同的消息类型:网络、CSS、JS、安全和日志记录。
  • 从下拉列表中选择要查看的每种类型的日志消息的严重级别。
  • 点击“清除”按钮清除日志。
  • 使用“筛选输出”框缩小可见条目范围。

注意:如果您怀念旧的错误控制台,可以将 devtools.errorconsole.enabled 选项从 about:config 中更改为 true。

那么有什么区别呢?

虽然 Web 控制台和浏览器控制台 *看起来*一样,但它们在非常不同的环境中运行。Web 控制台仅与当前 Firefox 选项卡内容交互,并受浏览器安全模型的限制。浏览器控制台将在 Firefox 本身上下文中执行,并具有系统级权限。举例来说,我们在 Web 控制台中键入“window”时可以检查的对象与浏览器控制台返回的对象非常不同。

02- and Aurora

这种浏览器级范围对于希望寻找高级日志记录和调试功能的 Firefox 贡献者和附加组件开发者来说尤其有趣。

附加组件访问

如果您正在开发 Firefox 附加组件,那么使用浏览器控制台进行日志记录肯定会有所帮助。附加组件开发者可以导入“Console.jsm”模块将消息打印到浏览器控制台。

let console = Cu.import("resource://gre/modules/devtools/Console.jsm").console;
console.log("hello", yourObject);

如果您正在使用附加组件 SDK,则提供的控制台对象已切换为使用浏览器控制台的新日志记录库作为控制台对象的后台,因此无需更改任何内容。

console.what?

Firebug 开启了网页 printf 调试的现代时代,为我们提供了 console 对象,所有浏览器都采用了此便捷 API。尽管如此,我们经常看到开发者在论坛上发帖寻找检查复杂 JS 对象的方法,通常会互相传递类似这样的辅助函数。

function prettyPrint(o) {
return JSON.stringify(o, null, ' ');
}

您不需要这样做!Firefox 控制台对象很好地实现了 console.dir,为您提供了任何对象的即时且相当有吸引力的可扩展树状视图。

03-console.dir

您甚至可以使用类似 printf 的语法使用控制台 API 进行字符串替换。

console.log('The number is %d, the string is "%s"', 42, 'Towel!');

对象检查器

将任何对象直接记录到控制台,您将看到一个带有对象类型的可点击条目。

03-Browser Console

点击该条目以显示树状视图和筛选框。

04-Browser Console

对于大型对象(如所示的顶级 Firefox ChromeWindow 对象),筛选属性可能很有用。

05-Browser Console

注意:Bug 843019 正在跟踪一个问题,即除非您首先按 Esc 键,否则筛选值将不起作用。

控制台助手

Web 和浏览器控制台实现了一些辅助函数,可以让您的生活更轻松。

  • $ 和 $$ 分别是 document.querySelector 和 document.querySelectorAll 的别名。
  • inspect(Object) 打开变量查看器侧边窗格并显示该对象的浏览树状视图。
  • pprint(Object) 将对象或数组作为字符串转储到控制台,如果您需要将一些数据从 JS 数组复制到浏览器外部的文本编辑器中,这会非常方便。
  • clear() 清除当前控制台,以防所有杂乱无章的内容让您感到压力。:)

还有更多!完整的列表可在 MDN 上找到。

多行输入

可以评估多行 Javascript。您只需在提示符处键入 Shift+Enter 即可开始,然后在需要换行时每次都键入 Shift+Enter。

06-Browser Console

如果您需要输入超过 2-3 行,则应考虑改为打开 Scratchpad


5 条评论

  1. Aras

    看到像这样的强大工具让我想要成为一名附加组件开发者。即使作为前端开发者,我也更喜欢这个。现在检查对象变得容易多了,助手命令也将非常方便。浏览器控制台绝对是我最喜欢的工具。

    2013年8月9日 23:41

    1. Luke

      很高兴在浏览器上下文中可以使用它。以后会将检查器、概要分析器或调试器添加到其中吗?使用两个单独的工具(DOM 检查器和 Venkman 附加组件)来执行此操作可能会显得有点笨拙。

      我还想知道在此下一个版本中是否会出现类似 Firebug 的 cd(frame) 命令或 Chrome 的框架选择器?那将非常有用。

      2013年8月13日 21:29

  2. matt

    如果 Firefox 开发者工具团队的任何人在阅读本文,我有一个问题希望您能解答。在 Firefox 的早期版本中,当我记录数组或对象时,会显示数组或对象的内容。现在(至少在测试版中),我只会得到用方括号显示的类型。是否有任何选项可以恢复旧的行为?谢谢!

    2013年8月12日 08:56

    1. Nick Fitzgerald

      嗨,Matt,

      我们目前正在重新设计控制台输出,这确实是我们的目标之一。

      请关注此处:https://bugzilla.mozilla.org/show_bug.cgi?id=778766

      2013年8月13日 13:16

    2. Luke

      当您点击该项目时,它会显示在右侧的面板中——但我同意,最好能够内联显示,这样您就可以比较输出。

      我发现有点烦人的一件事是无法从这些面板中跟踪或突出显示元素(与 bug 653545 相关)。

      2013年8月13日 21:01

本文评论已关闭。