AngularJS IE 8支持

时间:2013-11-27 11:11:59

标签: javascript jquery angularjs internet-explorer-8

我正在建立一个单页网站,使用AngularJS,ui-router和jquery,我需要它来支持8个浏览器。
我按照AngularJS文档(link)中的说明进行操作,并阅读this并按照其说明进行操作。
简而言之:我在标题中添加了这段代码:

<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp">

还有:

<!--[if lt IE 9]>
    <script type="text/javascript" src="/app/js/3rdparty/html5shiv.js"></script>
    <script type="text/javascript" src="/app/js/3rdparty/json3.min.js"></script>
<![endif]-->

我的所有指令都被限制用作属性指令(没有自定义标签) 但是,仍然没有呈现任何视图,也没有指令正在工作(在ie8上)。

我最近才开始使用ui-router,问题就在此之前就存在了 我真的找不到问题,而且我搜索了很多 我知道,有许多重复项,但他们的解决方案都没有帮助我(其中大多数都提到了angularjs的文档)。 我没有发布任何其他代码,因为它有很多,我真的无法弄清楚代码的哪一部分(除了index.html)可能导致任何问题。
如果您认为它可能会有帮助,我会发布任何其他代码 我真的迷路了,如果有人能引导我找到解决方案,我真的很感激 非常感谢你

3 个答案:

答案 0 :(得分:9)

如果您在控制器或服务或工厂中使用过任何console.log(),则IE-8根本不会加载角度。有点奇怪。

答案 1 :(得分:4)

好像我自己做了一点傻瓜 问题是我使用了一些保留字,显然IE8根本就不喜欢它。
例如,我有一个名为&#34; class&#34;的参数。在一个对象上,所以使用obj.class只是让IE8吓坏了。
与名为&#34;删除&#34;的函数相同(再次在一个对象中,所以我使用functionHoldingObject.delete

我知道保留字,我只是不认为使用它们作为对象的参数是有害的。 为了解决这个问题,我刚刚更改了一些名称,并将obj["reservedWord"]用于其他名称,这两种解决方案都适用于所有浏览器。

我发现的另一个错误是,我在使用Array.prototype.indexOf函数时却不知道IE8不支持它。所以我只是添加了一个实现(这非常简单) 您可以在MDN网站上获得相关帮助。

答案 2 :(得分:0)

由于兼容模式,我最近遇到了同样的问题。

尝试强制使用:

<!--[if IE 8]><!--> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!--<![endif]-->

同时在IE8浏览器中检查您的兼容模式不是IE7。