0

我遇到了我遇到过的最奇怪的问题。

我在我的公司制作了一个概念验证应用程序。所以它没有后端,只是一个用 Angular JS 构建的演示前端。我已经用 yeoman 设计了这个项目,并用 grunt 构建了它。在本地它工作得很好。

我已经将它部署在我公司的内部服务器上。它也适用于所有浏览器,除了IE9 之外的所有浏览器。

在控制台中我得到

SCRIPT438: Egenskapen eller metoden addEventListener stöds inte av objektet 
jquery.min.js, rad 4 tecken 6105

SCRIPT5009: jQuery har inte definierats 
jquery-ui.min.js, rad 5 tecken 1

SCRIPT5009: jQuery har inte definierats 
1bd2ba7a.scripts.js, rad 1 tecken 28462

SCRIPT445: Objektet kan inte hantera denna åtgärd. 
angular.min.js, rad 23 tecken 453

这是瑞典语,但我希望你能理解。

现在到更复杂的部分。我尝试将其部署在外部服务器上。它适用于IE9!

正如我所说,我没有服务器代码,所以没有任何我缺少的安装。另外,我没有任何 CDN:s。一切都是本地的。

任何人都知道如何调试这个?我被困住了。

4

2 回答 2

0

问题解决了。问题是 IE 被设置为在兼容模式下运行 Intranet 页面。它是工具 -> 兼容模式中的一个选项。此选项由我们的 IT 部门集中激活。原因是较旧的内部应用程序需要它才能工作。因此,这种情况下的解决方案是将应用程序分解到外部服务器上。

于 2013-10-02T19:16:09.493 回答
0

我遇到了与您相同的问题,尽管使用的是 Yeoman 脚手架的 Angularjs 项目。原来美国联邦政府还为所有内部站点设置了 IE 兼容模式。在 IE 兼容模式 (IE9) 下,Angularjs 应用程序的 index.html 页面不会呈现。

经过实验,我发现如果你删除以下 Yeoman 制作的样板,就会发生一些有趣的事情。IE 从兼容模式切换到标准模式,应用程序呈现和运行良好。这是要删除的样板:

<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

如果有人导航到此页面以寻找与 IE 兼容模式相关的 Yeoman 项目相关问题的解决方案,就像我所做的那样,我想我会在这里记录我的经验,以防它可能对其他人有所帮助。

刚刚找到了解决问题的替代方法(IE8 问题),方法是用 HTML5 if/endif 包装上述 if/endif:Override Intranet compatible mode IE8

感谢您打开此问题。

于 2014-08-24T20:49:50.290 回答