【问题标题】:Is there any way to detect IE11 enterprise mode pragmatically?有什么方法可以务实地检测IE11企业模式?
【发布时间】:2015-10-15 09:23:51
【问题描述】:

有什么方法可以实用地检测 Internet Explorer 11 企业模式?

在 csharp 或 javascript/jquery 中,实际上是指在服务器端。

后续话题还没有定论

IE 11 - Is there a way to check then enable / disable enterprise mode?

【问题讨论】:

标签: javascript c# internet-explorer-11


【解决方案1】:

您可以验证用户代理字符串 使用 Javascript 获取用户代理字符串:navigator.userAgent;

对于桌面上的 IE11 企业模式,用户代理字符串将为

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; Tablet PC 2.0)

参考https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx

【讨论】:

  • 用户代理字符串自 IE11 发布以来已更改,因此不建议将其作为检测方法。在这里阅读更多:stackoverflow.com/questions/28818733/…
  • 鉴于上面的用户代理,我们怎么知道它不是IE8?
【解决方案2】:

发送 X-UA-Compatible HTTP 标头或在页面的 HEAD 中使用 META 标记将使 IE 进入兼容模式。所以不这样做会让它在正常模式下运行。

如果您想测试浏览器是否兼容,我会编写一个 jQuery AJAX 调用,尝试使用在旧版 IE 中无法使用的 JavaScript 函数,并在 try catch 中将结果发布到您的应用程序。

例如 trim() doesn't work in IE8

var str = "       Hello World!        ";
var a = (str.trim());
if(a == "Hello World!"){
  //Ajax Post true
} else {
  //Ajax Post false
}

这应该可以工作,因为如果企业模式被激活,它将在 IE8 中工作

http://blogs.msdn.com/b/ie/archive/2015/03/02/making-it-easier-for-enterprise-customers-to-upgrade-to-internet-explorer-11-and-windows-10.aspx

【讨论】:

  • 虽然这可能会也可能不会解决 OP 的实际(可能是 XY)问题。它没有回答目前的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 2011-04-11
  • 2015-07-27
  • 2015-02-10
  • 2012-03-30
  • 2014-10-07
相关资源
最近更新 更多