【问题标题】:Create shortcut to console.log() in Chrome在 Chrome 中创建 console.log() 的快捷方式
【发布时间】:2011-07-24 07:47:04
【问题描述】:

因为我比较懒,所以创建了一个函数log,基本上只是console.log的缩写:

function log() {
  console.log.apply(console, arguments);
}

每当我调用它时,我都会在 Google Chrome 的开发者工具中看到记录的项目,右侧是记录该项目的行号。但是,这个行号始终是相同的,因为实际的console.log 调用位于代码中的一个特定位置(即我在上面声明log 函数的位置)。

我也尝试过的只是:

var log = console.log;

但这总是会引发错误:Illegal invocation。很奇怪,但我想这是不可能的。

如何使用开发者工具显示log 被调用的行号,而不是实际的console.log 调用所在的行号?

【问题讨论】:

  • 日志不起作用,因为全局对象(窗口)没有日志方法。我非常怀疑你想做的事情是可能的。但我有兴趣被证明是错误的。
  • @Hand B PUFAL:如果我错了,请原谅,但我声明了我自己的log() 函数,所以我可以只用log() 调用它。所以它确实有效,只是显示的位置不是我想要显示的。
  • 控制台没有Illegal Invocation 错误,但document 有错误,例如document.getElementById。我在这里找到了一些解释 link 但我不明白为什么它在同一个文档中不起作用。

标签: javascript google-chrome console shortcut


【解决方案1】:

当我报告它时,它被拒绝了,但答案很简单 - 创建这样的快捷方式:

var log = console.log.bind(console);

这不会遗漏行号,而您可以将其称为 log(...)

【讨论】:

  • 这是永久的还是当我关闭并打开 chrome 时它会消失?
  • @pimvdb: 获取行号的任何变通方法。
  • 我见过的最好的方式。我想补充一点,要禁用某些功能的日志记录,可以这样写:const $=0; $ && log('hello javascript');
【解决方案2】:

我刚刚创建了一个模块来做到这一点。

查看:https://github.com/ahlechandre/consl

安装

npm install consl --save-dev

用法

const { cl } = require('consl');

cl('Outputs a message on the Console using a quick');

【讨论】:

    【解决方案3】:

    在我的例子中,我使用 Ctrl + Alt + L 设置了 AutoHotKey 快捷键,如下所示:

    ^!l::Send console.log();{Left}{Left}
    

    好处是它将光标带回括号内以便快速输入。

    【讨论】:

      【解决方案4】:

      尝试了一些东西,但我认为你做不到。一旦你包装console.log,第nr 行将是在代码中找到这个包装的那一行。我想我们必须忍受这种情况?

      【讨论】:

      • 您可以随时尝试,这是可以理解的需求。我不认为它会在@Chromium 上获得高优先级排名;~)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 2017-03-03
      • 2013-03-14
      • 1970-01-01
      相关资源
      最近更新 更多