【问题标题】:mOxie is undefined, yet very clearly definedmOxie 未定义,但定义非常明确
【发布时间】:2015-02-02 17:25:11
【问题描述】:

我在 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,这符合问题和答案。你能重现这个吗?

【问题讨论】:

  • 是的,我和@BenjaminGruenbaum 在一起,因为只需包含您需要在 Github 上提交错误的文件即可显示错误清单 - 我们无能为力。
  • 我无法重现该问题。我在 IE 11 中打开并浏览了 11 到 8 之间的所有文档模式。每次都会记录该对象。我还在已安装的 IE 9 版本中进行了测试,结果是相同的 - 对象已被记录。
  • @Loktar 这个特殊的小提琴在 IE 9 中应该没有问题。您可能无法在 IE 9 中创作小提琴,但通常可以测试 在 IE 9 中达到普遍接受的程度。
  • @JonathanSampson 我在 IE9 中编写了小提琴,但无法得出你得到的结果。幸运的是,我已经解决了我的问题,这导致了一个手掌。

标签: javascript internet-explorer console.log


【解决方案1】:

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

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

为什么他们将对象记录为未定义我无法理解,但解决方法是使用console.dir,这会导致将对象正确记录到控制台。

mOxie 从来都不是undefined,它只是通过 IE 奇怪的控制台实现来记录的。

虽然我声称该问题无法重现,但我仍然可以得到相同的结果,就在我测试它的时候。 http://jsfiddle.net/vxyayxy8/1/ -- 这显示了 log 如何返回 undefined,而 dir 则返回对象。

【讨论】:

  • 这不可能是答案; console.logconsole.dir 不能确定引用的有效性。您要么传递一个定义的值,要么传递一个未定义的值。您将其传递给哪种方法与此处无关。请分享您运行的代码来得出这个结论。注意:我在 Internet Explorer 团队工作。
  • @NickDugger 我绝对知道 Web 开发人员对 IE 不满意的原因(在加入 IE 团队之前,我是一名 17 年的 Web 开发人员):) 我们将改变所有斯巴达项目虽然;)
  • @NickDugger 我发现了大约 5 个月前的开发人员工具错误,该错误似乎与您看到的问题有关。安装所有最新更新后,我怀疑您的问题将得到解决。如果不是这种情况,请告诉我,我将在内部升级此事。感谢您帮助充实这方面的细节!
  • @JonathanSampson Nah 伙计,感谢您亲自花时间帮助调试显然已经修复的问题。
  • @JonathanSampson 又一次,你恢复了对 IE 的信心。先生干得好!
猜你喜欢
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
相关资源
最近更新 更多