IE 11 - 有没有办法检查然后启用/禁用企业模式?

Pat*_*ach 6 internet-explorer-11

我不知道如何在Javascript或HTML中解决这个问题.我的客户目前正在使用为ie9及以下版本构建的Web应用程序.这些遗留应用程序在IE11上运行不佳.IT解决方案是为了实现企业模式.企业模式旨在避免"与在旧版Internet Explorer上编写和测试的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对象,我没有看到任何属性,我们会告诉我企业模式是否启用.有什么建议吗?

摄制(S):

  • IE11>开发人员工具>控制台>类型窗口
  • IE11>开发人员工具>控制台>键入文档

Lan*_*ard 5

没有DOM属性表明您正在运行EMIE.EMIE的整体思路是,以模仿IE8的行为比IE8文档模式更好地模拟IE8的行为.EMIE应仅用于需要的特定情况; 它不应该批发使用.

在某些情况下可以检测EMIE.如果您在列表仔细看用户代理字符串在过去的几个版本,有EMIE之间的IE11和IE11 RTM用户代理字符串一个明显的区别.

但是,在你把它作为你的魔术子弹之前,有两点需要注意:

  1. 您无法以编程方式禁用EMIE.这只是本地配置更改.

  2. 今天IE11的用户代理与IE11发布时完全不同.根据IE团队的报告,UA字符串将变得更加复杂,特别是一旦"IE Spartan"(或者他们选择称之为"它的任何东西")就会出现问题.

我的推荐?创建一个小型启动器页面,为相关的Web应用程序执行简单的功能检测.如果您检测到与应用程序所需内容一致的功能,则会显示启动应用程序的链接.如果功能检测无法检测到IE8,IE11或您定位的任何版本,则会显示警告,其中包含指向更多故障排除信息的链接.不管怎样,请务必包含启动链接,以防万一.

通过这种方式,用户可以获得所需的信息,并且您可以轻松地处理问题,而且不需要对相关应用程序进行太多更新.

希望这可以帮助...

- 兰斯


Pat*_*ach 1

对于那些也为这个问题苦苦挣扎的人。我已向 MS IE 团队提交了功能请求。

请参阅: https: //connect.microsoft.com/IE/feedback/details/1159543/need-a-way-for-client-side-codes-to-detect-enterprises-mode

我的解决方案是一种解决方法,涉及检查容器 div 的宽度。企业模式不支持响应式。