我不知道如何在Javascript或HTML中解决这个问题。我的客户目前正在使用为ie9及以下版本构建的web应用程序。这些遗留应用程序在IE11上不能很好地工作。它的解决方案是启用企业模式。企业模式的设计是为了避免“与在旧版本的Internet上编写和测试的web应用程序相关的常见兼容性问题”。
请参阅:http://www.eightforums.com/tutorials/43972-ie11-enterprise-mode-enable-disable-users.html
在使用Bootstrap和AngularJS编写的web应用程序中,启用企业模式似乎存在问题。除非禁用企业模式,否则响应根本不起作用。不仅仅是AngularJS和Bootstrap,还有其他库。
我正在寻找的解决方案是通过javascript检查企业模式的状态,然后告诉用户要么启用/禁用该模式。更好的是,如果可以通过JS或HTML属性自动关闭/打开它。
在document.x和window.x对象中,我没有看到任何我们会给我提供企业模式是启用的指示的属性。有什么建议吗?
复制人:
发布于 2015-03-03 00:24:30
没有DOM属性指示您正在运行EMIE。EMIE的整体思想是模拟IE8行为比IE8文档模式更好地模拟IE8行为。EMIE只应在需要的特定情况下使用,而不应大规模使用。
在某些情况下可以检测到EMIE。如果仔细查看过去几个版本中的用户代理字符串列表,IE11上的EMIE与IE11 RTM的用户代理字符串之间有明显的区别。
然而,在你把它当作你的魔法子弹之前,有两个注意事项:
我的推荐信?创建一个小的启动页面,为这个web应用程序做一个简单的特征检测。如果您检测到与应用程序所需功能相一致的功能,则显示一个启动应用程序的链接。如果功能检测无法检测到IE8、IE11或您所针对的任何版本,则显示带有指向更多故障排除信息的链接的警告。无论如何,一定要包括一个发射链接,以防万一。
这样,用户就有了他们需要的信息,而你就有了一种轻量级的方式来处理这个问题,一种不需要对应用程序进行太多更新的方法。
希望这能帮上忙。
-兰斯
发布于 2015-04-09 10:55:46
在我看来,这个问题的原因是IE11企业级模式模仿IE8,但是引导程序不支持IE8,要克服它,只需要使用HTML5、shim和Respond.js,就像描述的这里。
<script src="js/respond.min.js"></script>
<script src="js/html5shiv.min.js"></script>
但是不带检查,比如<!--[if lt IE 9]>
--因为它似乎在企业模式下不能工作。
更好的解决方案不仅是不附带条件地包含上述脚本,而且要找出适当的条件,而不是
要解决angularjs的问题,只需使用以下元标记:
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
发布于 2015-03-09 23:19:22
对于那些也在努力解决这个问题的人来说。我已经向微软IE团队提交了一个功能请求。
我的解决方案是检查容器div的宽度。企业模式不支持响应。
https://stackoverflow.com/questions/28818733
复制相似问题