如何在 Google Chrome JavaScript 控制台中打印调试消息?
请注意,JavaScript 控制台与 JavaScript 调试器不同;它们有不同的语法 AFAIK,所以JavaScript 调试器中的打印命令在这里不起作用。在 JavaScript 控制台中,print()
将参数发送到打印机。
如何在 Google Chrome JavaScript 控制台中打印调试消息?
请注意,JavaScript 控制台与 JavaScript 调试器不同;它们有不同的语法 AFAIK,所以JavaScript 调试器中的打印命令在这里不起作用。在 JavaScript 控制台中,print()
将参数发送到打印机。
从浏览器地址栏执行以下代码:
javascript: console.log(2);
成功地将消息打印到 Google Chrome 中的“JavaScript 控制台”。
改进 Andru 的想法,您可以编写一个脚本来创建控制台函数(如果它们不存在):
if (!window.console) console = {};
console.log = console.log || function(){};
console.warn = console.warn || function(){};
console.error = console.error || function(){};
console.info = console.info || function(){};
然后,使用以下任一方法:
console.log(...);
console.error(...);
console.info(...);
console.warn(...);
这些函数将记录不同类型的项目(可以根据日志、信息、错误或警告进行过滤),并且在控制台不可用时不会导致错误。这些函数将在 Firebug 和 Chrome 控制台中工作。
只需添加一个很多开发人员都错过的很酷的功能:
console.log("this is %o, event is %o, host is %s", this, e, location.host);
这是JavaScript 对象的神奇%o
转储可点击和可深度浏览的内容。%s
显示只是为了记录。
这也很酷:
console.log("%s", new Error().stack);
这为new Error()
调用点提供了类似于 Java 的堆栈跟踪(包括文件路径和行号!)。
双方%o
并new Error().stack
在Chrome和Firefox提供!
同样对于 Firefox 中的堆栈跟踪使用:
console.trace();
正如https://developer.mozilla.org/en-US/docs/Web/API/console所说。
快乐黑客!
更新:一些库是由坏人编写的console
,他们为自己的目的重新定义了对象。要console
在加载库后恢复原始浏览器,请使用:
delete console.log;
delete console.warn;
....
请参阅堆栈溢出问题恢复 console.log()。
只是一个简短的警告 - 如果您想在 Internet Explorer 中进行测试而不删除所有 console.log(),则需要使用Firebug Lite否则您会遇到一些不太友好的错误。
(或者创建你自己的 console.log() 它只返回 false。)
这是一个简短的脚本,用于检查控制台是否可用。如果不是,它会尝试加载Firebug,如果 Firebug 不可用,它会加载 Firebug Lite。现在您可以console.log
在任何浏览器中使用。享受!
if (!window['console']) {
// Enable console
if (window['loadFirebugConsole']) {
window.loadFirebugConsole();
}
else {
// No console, use Firebug Lite
var firebugLite = function(F, i, r, e, b, u, g, L, I, T, E) {
if (F.getElementById(b))
return;
E = F[i+'NS']&&F.documentElement.namespaceURI;
E = E ? F[i + 'NS'](E, 'script') : F[i]('script');
E[r]('id', b);
E[r]('src', I + g + T);
E[r](b, u);
(F[e]('head')[0] || F[e]('body')[0]).appendChild(E);
E = new Image;
E[r]('src', I + L);
};
firebugLite(
document, 'createElement', 'setAttribute', 'getElementsByTagName',
'FirebugLite', '4', 'firebug-lite.js',
'releases/lite/latest/skin/xp/sprite.png',
'https://getfirebug.com/', '#startOpened');
}
}
else {
// Console is already available, no action needed.
}