Javascript WebKit/Safari的控制台API在哪里?

Javascript WebKit/Safari的控制台API在哪里?,javascript,console,safari,Javascript,Console,Safari,WebKit/Safari支持console对象,这与Firebug的功能类似。但究竟支持什么呢?有一个,但是在哪里可以找到Safari/WebKit的控制台文档?支持的方法最初是: console.log() console.error() console.warn() console.info() 更新版本的WebKit还添加了以下方法,使WebKit控制台API几乎与相同: console.count() console.debug() console.profileEnd() co

WebKit/Safari支持console对象,这与Firebug的功能类似。但究竟支持什么呢?有一个,但是在哪里可以找到Safari/WebKit的控制台文档?

支持的方法最初是:

  • console.log()
  • console.error()
  • console.warn()
  • console.info()
更新版本的WebKit还添加了以下方法,使WebKit控制台API几乎与相同:

  • console.count()
  • console.debug()
  • console.profileEnd()
  • console.trace()
  • console.dir()
  • console.dirxml()
  • console.assert()
  • console.time()
  • console.profile()
  • console.timeEnd()
  • console.group()
  • console.groupEnd()

(基于WebKit夜间构建WebKit-SVN-r37126的新信息,在撰写本文时,这些方法在Safari中不可用)

苹果公司在Safari开发者指南的一节中记录了控制台API。

Firebug的控制台API文档已移至此处:


我知道这是一个老生常谈的问题,但您也可以打开控制台并键入
控制台。\uuuu proto\uuu
,您将得到一个可扩展的列表,其中列出了它支持的所有内容。

尝试一下:

console.dir(console)

Console对象似乎有一个内置的“API”,其形式为“私有属性”,您可以通过在Webkit javascript控制台中执行此操作来显示

> for(o in console) console.dir(o)
    _commandLineAPI
    log
    warn
    …
_命令行PI:

> console.dir(_commandLineAPI)
  CommandLineAPI
    $0: "—"
    $1: "—"
    $2: "—"
    $3: "—"
    $4: "—"
    $$: bound: function () {
    $x: bound: function (xpath, context) {
    clear: bound: function () {
    copy: bound: function (object) {
    dir: bound: function () {
    dirxml: bound: function () {
    inspect: bound: function (object) {
    keys: bound: function (object) {
    monitorEvents: bound: function (object, types) {
    profile: bound: function () {
    profileEnd: bound: function () {
    unmonitorEvents: bound: function (object, types) {
    values: bound: function (object) {
    __proto__: CommandLineAPI

目前safari控制台坏了

这是副本(按“运行代码片段”):


)因为此段落是此页面上
p
元素的第二个实例(
[1]
在基于0的索引中),所以节点表示此段落。当您将鼠标悬停在节点上时,其在页面上的位置将明显高亮显示。您可以展开节点以查看其内容,甚至可以按Command-C将其复制到剪贴板。

表达式。

$0
表示内容浏览器中当前选定的节点。

$
1..4

表示内容浏览器中最后、第二到最后、第三到最后和第四到最后选定的节点,分别

$

返回上次计算表达式的值。

dir(
object
打印对象的所有属性。

dirxml(
object
打印对象的所有属性。如果对象是节点,则打印节点和所有子节点。

键(
对象
打印对象自身属性名称的数组。

打印对象自身属性值的数组。

值(
对象
打印对象自身属性值的数组。

配置文件(

启动JavaScript探查器。可选参数
title
包含要在概要文件报告的标题中打印的字符串。请参阅。

profileEnd()
停止JavaScript探查器并打印其报告。请参阅。

获取事件监听器(
对象
打印包含对象附加事件监听器的对象。

监视事件(
对象[,类型]
开始记录分派给给定对象的所有事件。可选参数
types
定义要记录的特定事件或事件类型,例如“单击”。

取消监视事件(
object[,types]
停止记录分派给给定对象的所有事件。可选参数
types
定义要停止记录的特定事件或事件类型,例如“单击”。

检查(
对象
检查给定对象;这与单击Inspect按钮相同。

复制(
对象
将给定对象复制到剪贴板。

清除()
清除控制台。

表5-1中列出的函数是常规JavaScript函数,是Web Inspector环境的一部分。这意味着您可以像使用任何JavaScript函数一样使用它们。例如,您可以将一系列控制台API命令分配给变量,以创建有用的速记。清单5-1显示了如何快速查看附加到所选节点的所有事件类型。

清单5-1查找附加到该元素的事件

是否有任何方法将控制台日志重定向到文件?@Ashish:javascript生成的日志?别这么想。。。伙计们?这会很有趣。@Ashish不是本地的(可以被利用-填充HD空间?),但您始终可以写入服务器上的套接字(使用socket.io或类似工具)。默认情况下禁用,并使用查询字符串参数启用。这样,你的应用程序的prod版本在默认情况下就不会这样做。您想观看应用程序的多个实例(在不同的客户机上)登录到同一个服务器,可能最好将其设置为127.0.0.1以进行本地开发测试?只是一个想法…答案在下面,但在这里添加,这样人们就不会错过它。苹果的完整文档位于