AngularJS Internet Explorer 9

16

我在使用AngularJS和Internet Explorer 9时遇到了一些小问题。看起来,AngularJS没有正确加载。如果我使用我的应用程序启动IE,什么都不会工作,但是如果我启动IE9的开发工具并刷新页面,则我的应用程序将正常工作,并且所有内容都已加载并准备好使用。

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

更新和解决方案

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

但是?

但我想问为什么IE在console.log(...)上有这么多问题?


你一定要打开开发者工具吗?还是简单的刷新也可以? - callmekatootie
只有刷新不起作用,只有在开发工具打开的情况下才行。 - moohkooh
我也遇到了IE8的同样问题。Baezy的回答是正确的(应该标记为正确)。我从我的应用程序中删除了两个console.log()行,然后它就可以工作了。 - Michael Oryl
在IE8和IE9上,仅在打开选项卡的开发工具后才启用console.log():https://dev59.com/hW035IYBdhLWcg3wW-pa#5473193。正如@Pavel在下面提到的那样,始终使用$log。 - dwong
3个回答

15

我遇到了相同的问题,解决方法是在使用之前在父控制器中创建窗口控制台。您可以添加以下代码并尝试。

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

1
我无法告诉你这个可能刚刚为我省了多少时间。谢谢! - Michael Oryl
在经过数小时的尝试后,我终于找到了我们内部网络应用程序出现问题的原因。如果早些时候能够找到你就好了。我设置了一个调试模式标志作为全局变量,并且只有在这个标志为真时才公开console.log。 - Mike Rouse

4

只是一条注释,使用 $log.log("...") 也会有同样的问题,在 IE 中使用 $log.info(...) 可以解决。 - Mavlarn
谢谢你提醒我,我会去查看一下。 - Pavel Nikolov

3

你的代码中是否有调用console.log? 如果是,除非你打开开发者工具,否则IE将无法使用它。


好的,我的错误。当然,在IE的开发工具中,所有日志都将可见。在我的情况下,我的页面加载不正确(AngularJS停止),绑定被破坏,我的列表不会填充(ng-repeat)等等。如果我打开IE的开发工具并重新加载页面,一切都可以正常工作。 - moohkooh
感谢发布这个问题。我也遇到了同样的问题。我猜是IE的特殊性。 - lostpacket

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接