来自IE10的IE8降级为控制台

时间:2013-07-18 12:41:47

标签: internet-explorer-8 downgrade

我需要测试一个使用console-object的JavaScript项目。所以我从IE10降级到IE8,但我不确定我的环境测试用户对其他人是否“安全”。

How can I use console logging in Internet Explorer?consoleundefined没有开发工具(F12)。但我目前的经验是console.log始终可用,无论F12是否有效。

这个article sais,它们已完全启用。 IE8中未定义此article sais控制台。

看起来像IE8!= IE8。不是在IE,Firefox,Opera和Safari中测试页面吗?

<html>
<body>
<script>
document.write('Console is <b>' + typeof console + '</b>! <br />');
document.write('Even console.log is <b>' + typeof console.log + '</b>!<br />');
document.write(window.navigator.userAgent);
</script>
</body>
</html>

screenshot

1 个答案:

答案 0 :(得分:1)

未定义的控制台:这是真的。 IE8和IE9仅在打开F12开发工具时定义console对象。如果尚未打开开发工具,则console对象未定义,将导致致命错误。

另请参阅我对此问题的回答:Why does JavaScript only work after opening developer tools in IE once?

有很多方法可以解决这个问题,但最好的解决办法就是不在生产代码中使用console对象 - console对象不是Web标准,所以你不应该依赖它存在(实际上存在其他浏览器根本不提供console对象。)

如果您必须在生产代码中使用控制台,则可以在页面加载时为其创建垫片。像这样:

if(!window.console) {window.console={log:function(){}};}

这应该可以防止它造成致命的错误。

但实际上,最好的答案是不要在生产代码中进行console次调用。它旨在作为开发人员工具,因此它应该只用于开发代码。