我如何打印调试消息在谷歌Chrome JavaScript控制台?

请注意,JavaScript控制台和JavaScript调试器是不一样的;它们有不同的语法AFAIK,所以在JavaScript调试器中的打印命令在这里将不起作用。在JavaScript控制台中,print()会将参数发送给打印机。


当前回答

从浏览器地址栏执行以下代码:

javascript: console.log(2);

成功打印消息到“JavaScript控制台”在谷歌Chrome浏览器。

其他回答

从浏览器地址栏执行以下代码:

javascript: console.log(2);

成功打印消息到“JavaScript控制台”在谷歌Chrome浏览器。

进一步完善Delan和Andru的观点(这就是为什么这个答案是编辑版本);Console.log可能存在,而其他函数可能不存在,因此默认映射到与Console.log ....相同的函数

你可以写一个脚本来创建不存在的控制台函数:

if (!window.console) console = {};
console.log = console.log || function(){};
console.warn = console.warn || console.log;  // defaults to log
console.error = console.error || console.log; // defaults to log
console.info = console.info || console.log; // defaults to log

然后,使用以下任何一种方法:

console.log(...);
console.error(...);
console.info(...);
console.warn(...);

这些函数将记录不同类型的项目(可以根据log, info, error或warn进行过滤),并且在控制台不可用时不会导致错误。这些功能将在Firebug和Chrome控制台中工作。

我个人使用这个,它类似于tarek11011的:

// Use a less-common namespace than just 'log'
function myLog(msg)
{
    // Attempt to send a message to the console
    try
    {
        console.log(msg);
    }
    // Fail gracefully if it does not exist
    catch(e){}
}

主要的一点是,至少有一些日志记录的实践,而不仅仅是将console.log()直接插入到JavaScript代码中,这是一个好主意,因为如果您忘记了它,而它位于生产站点上,它可能会破坏该页面的所有JavaScript代码。

简单的Internet Explorer 7及以下,为其他浏览器保留行编号:

/* Console shim */
(function () {
    var f = function () {};
    if (!window.console) {
        window.console = {
            log:f, info:f, warn:f, debug:f, error:f
        };
    }
}());

除了Delan Azabani的回答,我还喜欢分享我的console.js,我也是出于同样的目的。我用一个函数名数组创建了一个noop控制台,在我看来这是一种非常方便的方式,我照顾了Internet Explorer,它有一个console.log函数,但没有console.debug:

// Create a noop console object if the browser doesn't provide one...
if (!window.console){
  window.console = {};
}

// Internet Explorer has a console that has a 'log' function, but no 'debug'. To make console.debug work in Internet Explorer,
// We just map the function (extend for info, etc. if needed)
else {
  if (!window.console.debug && typeof window.console.log !== 'undefined') {
    window.console.debug = window.console.log;
  }
}

// ... and create all functions we expect the console to have (taken from Firebug).
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

for (var i = 0; i < names.length; ++i){
  if(!window.console[names[i]]){
    window.console[names[i]] = function() {};
  }
}