我如何打印消息到错误控制台,最好包括一个变量?
例如,像这样:
print('x=%d', x);
我如何打印消息到错误控制台,最好包括一个变量?
例如,像这样:
print('x=%d', x);
当前回答
下面是如何将消息打印到浏览器的错误控制台(而不是调试器控制台)的解决方案。(可能有很好的理由绕过调试器。)
正如我在关于建议抛出错误以在错误控制台中获取消息的注释中所指出的,一个问题是这将中断执行线程。如果不想中断线程,可以在使用setTimeout创建的单独线程中抛出错误。因此,我的解决方案(这是Ivo Danihelka的一个详细阐述):
var startTime = (new Date()).getTime();
function logError(msg)
{
var milliseconds = (new Date()).getTime() - startTime;
window.setTimeout(function () {
throw( new Error(milliseconds + ': ' + msg, "") );
});
}
logError('testing');
我以毫秒为单位包含了从开始时间到现在的时间,因为超时可能会打乱您期望看到消息的顺序。
Error方法的第二个参数是文件名,这里是一个空字符串,以防止输出无用的文件名和行号。可以获得调用方函数,但不能以简单的独立于浏览器的方式获得。
如果我们可以用警告或消息图标而不是错误图标来显示消息,那就太好了,但我找不到一种方法来做到这一点。
使用throw的另一个问题是,它可能会被一个封闭的try-catch捕获和丢弃,将throw放在一个单独的线程中也可以避免这个障碍。然而,还有另一种方法可以捕获错误,即如果窗口。Onerror处理程序被替换为执行不同操作的处理程序。我帮不了你。
其他回答
console.log("your message here");
为我工作…我正在找这个..我用火狐浏览器。 这是我的脚本。
$('document').ready(function() {
console.log('all images are loaded');
});
适用于火狐和Chrome浏览器。
要真正回答这个问题:
console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);
除了error,你还可以使用info, log或warn。
WebKit Web Inspector还支持Firebug的控制台API(只是Dan回答的一个小补充)。
使用es6语法,你可以使用:
console.log(`x = ${x}`);
在《调试JavaScript:扔掉你的提醒!》中概述了一种跨浏览器的好方法。