是否有IE的控制台记录器?我正在尝试将一堆测试/断言记录到控制台,但是我无法在IE中执行此操作。
是否有IE的控制台记录器?我正在尝试将一堆测试/断言记录到控制台,但是我无法在IE中执行此操作。
Answers:
您可以通过启动“开发人员工具”(F12)访问IE8脚本控制台。单击“脚本”选项卡,然后单击右侧的“控制台”。
在JavaScript代码中,您可以执行以下任一操作:
<script type="text/javascript">
console.log('some msg');
console.info('information');
console.warn('some warning');
console.error('some error');
console.assert(false, 'YOU FAIL');
</script>
另外,您可以通过调用清除控制台console.clear()
。
注意:看来您必须先启动开发人员工具,然后刷新页面才能正常工作。
console.log()
将中断。随时保护您的通话window.console && console.log('stuff');
从版本8开始,Internet Explorer具有自己的控制台,与其他浏览器一样。但是,如果未启用控制台,则该console
对象不存在,对的调用console.log
将引发错误。
另一个选择是使用log4javascript(完整披露:由我编写),它具有自己的日志记录控制台,该控制台可在所有主流浏览器(包括IE> = 5)中运行,并为浏览器自身的控制台提供了包装器,以避免出现undefined的问题console
。
如果最终将console.log()
命令发布到生产环境,则需要对IE进行某种修复-因为console
仅在F12
调试模式下才定义。
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[显然删除警报(msg);声明一经验证即可生效]
另请参阅Internet Explorer的“控制台”是未定义的错误,以获取其他解决方案和更多详细信息
有Firebug Lite,它在IE中提供了许多Firebug功能。
John Resig(jQuery的创建者)在他的《 Java忍者的秘密》一书中有一个非常简单的代码,可以处理跨浏览器的console.log问题。他解释说,他希望收到一条适用于所有浏览器的日志消息,下面是他的编码方式:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
在该片段缺失。:)
对于仅限于console.log的IE8或控制台支持(无调试,跟踪等),您可以执行以下操作:
如果未定义console或console.log:为控制台功能(跟踪,调试,日志等)创建虚拟功能
window.console = {
debug : function() {}, ...};
否则,如果已定义console.log(IE8)并且未定义console.debug(其他任何功能):将所有日志记录功能重定向到console.log,则可以保留这些日志!
window.console = {
debug : window.console.log, ...};
不确定各种IE版本中的断言支持,但是欢迎任何建议。
您可以使用跨浏览器包装器:https : //github.com/MichaelZelensky/log.js
对于较旧版本的IE(IE8之前的版本),经过数小时的研究并尝试了许多不同的解决方案之后,在IE Developer Toolbar中看到控制台日志并不是直截了当的,最后,以下工具栏对我来说是个不错的工具:
这样做的主要优点是为IE6或IE7提供了一个控制台,因此您可以看到错误所在(在控制台日志中)
console.log()
仅在IE的开发工具打开时才有效(是的,IE很烂)。看到stackoverflow.com/questions/7742781/...