IE10 console.log不能正常工作

Jam*_*mes 19 javascript internet-explorer

我刚开始在Win8上玩IE10并遇到问题.当"文档模式"设置为"标准"时,开发人员工具控制台似乎不起作用.我已经玩过浏览器模式和文档模式,并且当设置为IE9标准时控制台工作,但是将其设置为简单的"标准",IE10的默认设置,控制台是未定义的.有任何想法吗?

这不是重复的.测试时,开发人员控制台已打开.将Doc模式切换为IE9标准并重新加载按预期显示控制台输出.切换回IE10标准不显示控制台输出.调试显示控制台未定义,因此将console.log设置为空函数以处理未定义.我很好奇为什么在IE10标准模式下控制台是未定义的.

我在VirtualBox中运行Win8.我的页面是带有适当doctype的HTML4标记.

And*_*rew 7

之所以console.log();未定义,是因为这就是标准模式的工作原理.IE 8有一个兼容模式,从字面上把它变成IE 7,删除了对添加到IE 8的功能的所有理解.控制台是在IE 10中添加的,所以通过在标准模式下运行它,它会有意义抛出错误.

<head>
    <title>Force IE 10</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
Run Code Online (Sandbox Code Playgroud)

此处的元标记将强制IE在您安装的最新版本中运行(禁用标准和兼容性模式).这是在IE 10中以标准模式定义控制台的唯一方法 - 禁用标准模式.

  • 在哪个星球上"有意义"?有意义的是,微软产生了一个从不符合实际"标准"的可怕浏览器 (5认同)
  • 因为IE 8处理错误的方式,这是有道理的.它只是简单地崩溃了javascript的其余部分.在jQuery文件的开头放置一个`console.log()`会导致jQuery无法加载到页面上.IE 10在标准模式下优雅退出错误会导致它的功能与IE 8不同.另外,对于tanguy_k,`<!DOCTYPE html>`会导致IE 9及以下版本默认为`loose.dtd`(可能是` transitional.dtd`,我忘记了哪一个)并且可能导致页面的CSS中断. (3认同)
  • Microsoft解释说IE = edge"在功能上等同于使用HTML5 doctype"所以<!DOCTYPE html>就足够了.请参阅http://msdn.microsoft.com/en-US/library/jj676915.aspx (2认同)

小智 5

定义它!

if (typeof console == "undefined") {
    this.console = {log: function() {}};
}
Run Code Online (Sandbox Code Playgroud)

请参阅:"控制台"是Internet Explorer的未定义错误