【问题标题】:AngularJS Internet Explorer 9AngularJS Internet Explorer 9
【发布时间】:2013-06-06 04:55:04
【问题描述】:

我在使用 angularjs 和 internet explorer9 时遇到了一些小问题。看起来,angularjs 没有正确加载。如果我用我的应用程序启动 ie,什么都不会起作用,但如果我启动 ie9 的开发工具并刷新页面,我的应用程序将工作,一切都在加载并准备好使用。

我不知道会发生什么以及如何解决此问题。我使用 angularJs 版本 1.1.5。非常感谢!

更新和解决

我的问题是,我到处都有 console.log (..)。在 FF 或 Chrome 上,一切正常,但在 II9 中,发生了一些事情,即在语句 console.log(...); 之后停止。从我的 JavaScript 中删除 console.log(..) 后,我的应用程序也可以在 IE7/8/9 上运行。

但是??

但我会问为什么IE对console.log有这么多问题?

【问题讨论】:

  • 您是否必须打开开发者工具或简单的刷新也可以?
  • 只有在开发工具打开的情况下才刷新不起作用
  • 在 IE8 上遇到了同样的问题。 Baezy 的回答是正确的(应该这样标记)。我从我的应用程序中取出了两条 console.log() 行,它起作用了。
  • console.log() 在 IE8 和 IE9 上仅在打开选项卡的开发工具后启用:stackoverflow.com/a/5473193/3211434。正如@Pavel 在下面提到的,始终使用 $log。

标签: angularjs internet-explorer-9


【解决方案1】:

您是否在代码中调用了 console.log? 如果是,除非您打开开发工具,否则在 IE 中将不可用。

【讨论】:

  • 好吧,我错了。当然,所有日志都将在 ie 的开发工具中可见。在我的情况下,我的页面将无法正确加载(angularjs 停止),绑定我损坏,我的列表不会填满(ng-repeat)等。如果我打开 ie 的开发工具并重新加载页面,everythink 工作
  • 感谢您发布此问题。我遇到过同样的问题。我猜是 IE 特质。
【解决方案2】:

我遇到了同样的问题,修复它的原因是在使用它之前在父控制器中创建窗口控制台。您可以添加以下代码并尝试。

window.console = window.console || {};
window.console.log = window.console.log || function() {};

【讨论】:

  • 我无法告诉您您可能刚刚为我节省了多少时间。谢谢!
  • 经过数小时试图找出 Intranet 应用程序出了什么问题后,我发现了这一点。要是我早点找到你就好了。我将调试模式标志设置为全局变量,并且仅在为 true 时公开 console.log。
【解决方案3】:

使用$log 服务。它将被注入您的控制器中。 https://docs.angularjs.org/api/ng/service/$log

【讨论】:

  • 只是注释,使用$log.log("...") 也会有同样的问题,使用$log.info(...) 可以在IE 中工作。
  • 感谢您的提醒 - 我会检查一下。
猜你喜欢
  • 2014-10-10
  • 1970-01-01
  • 2013-01-06
  • 2012-07-29
  • 2023-03-18
  • 2012-04-01
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多