mOxie未定义,但定义非常明确

ndu*_*ger 5 javascript internet-explorer console.log

我把我的头发拉过IE9/8; 我正在尝试使用mOxie,但它显示为undefined,即使它已经非常明确地定义了.

当我从另一个文件登录mOxie到控制台时,它在Chrome/IE10 +中完全记录下来,但在IE9/8日志中触发相同的脚本undefined.

但是,在IE9/8中,当我直接在控制台中键入"mOxie"时,它会正确记录对象.

http://jsfiddle.net/vxyayxy8/ - 在IE10模式下运行,你会看到它加载了一个对象.在IE9模式下运行,您将看到它记录undefined

为什么在IE9/8中,当从文件(包含在mOxie之后)中进行记录时,它undefined是直接使用控制台时在IE9/8中定义的?

请记住,它是在Chrome和IE10 +中定义的.

为了测试我的答案理论,在IE11中,但在IE9文档模式中,做console.log({})- 我得到undefined,这符合问题和答案.你能复制一下吗?

ndu*_*ger 6

下面的答案仍然是合法的,但显然这是由于我已经确定已经修复的IE漏洞,所以我正在安装更新并希望最好.谢谢你的帮助,伙计们.

我发现console.log在IE8/9文档模式下(是的,devtools是打开的)会导致undefined.

为什么他们将对象记录为未定义是超出我的,但修复是使用console.dir这导致正确将对象记录到控制台.

mOxie从来没有undefined,它只是通过IE的奇怪的控制台实现记录.

虽然我声称这个问题无法再现,但我仍然可以得到相同的结果,我正在测试它.http://jsfiddle.net/vxyayxy8/1/ - 这显示了日志返回undefined,vs dir返回对象.

ASDF

  • @NickDugger我肯定知道Web开发人员对IE不满意的原因(在加入IE团队之前我是一名网络开发人员已经17年了):)我们将改变所有这些与Project Spartan但是;) (7认同)
  • @NickDugger我发现大约5个月前的开发人员工具错误似乎与您所看到的问题有关.安装所有最新更新后,我怀疑您的问题将得到解决.如果情况不是这样,请告诉我,我会在内部上报此事.感谢您帮助充实这方面的细节! (4认同)
  • 这不可能是答案; `console.log`和`console.dir`不确定引用的有效性.您要么传递已定义的值,要么传递未定义的值.您传递给它的方法与此无关.请分享您运行的代码以得出这个结论.注意:我在Internet Explorer团队工作. (2认同)