【问题标题】:Differentiate between IE compatibility view区分IE兼容性视图
【发布时间】:2012-08-29 13:25:58
【问题描述】:

如果用户使用的是 IE 7 并且我阅读了

<% = Request.Browser.Version %>

我得到 7.0

如果他们有 IE 9 并且在兼容性视图中,我会得到同样的结果。

Request.Browser 中有什么可以区分真正的 IE7 用户和使用 IE8 或 IE9 但处于兼容模式的用户吗?

【问题讨论】:

  • 了解为什么您需要在服务器端知道这一点可能会有所帮助。
  • @rossisdead - 因为我想给出不同的警告。 .“升级”或“关闭兼容模式”
  • 如果你告诉他们升级到 Firefox,这两种情况都适用。
  • @richard - 同意,但是如果他们使用的是 IE9,他们不需要升级他们的浏览器,他们只需要关闭兼容模式。这是一个更简单的问题:)

标签: asp.net-mvc internet-explorer compatibility ie8-compatibility-mode


【解决方案1】:

最好使用 JavaScript 在客户端执行此操作。你可以使用这样的东西:

http://code.google.com/p/ie6-upgrade-warning/

你可以随意调整它。

如果您的目标只是确保用户不处于兼容模式,那么您可以使用 X-UA-COMPATIBLE 的元标记或 http 标头版本:

<html>
   <head>
       <meta http-equiv="X-UA-Compatible" content="IE=Edge" >
   </head>
   <body>
       <p>Content goes here.</p>
   </body>
</html> 

【讨论】:

  • 这很好,除非您没有回答问题。有没有办法将两者(实际的 IE7 浏览器与 IE8+,但在兼容模式下)与 javascript 区分开来?
  • @leora - 你看错了。您可以控制浏览器呈现的模式。如果您希望网站以标准模式呈现,那么您需要使用适当的文档类型,并且可以选择使用 X-UA-COMPATIBLE 元标记或 http 标头,这将迫使 IE以标准模式渲染。
  • 感谢您的澄清。所以这将胜过任何浏览器设置(例如,IE 中有设置以兼容模式呈现所有 Intranet 站点。哪一个胜过另一个?
  • @leora - 是的,X-UA-COMPATIBLE 胜过用户设置。如果它在那里,用户甚至不会得到损坏的文档来启用兼容模式,是的,它胜过 Intranet 坐模式。
  • 感谢您的信息。 .您能否更新您的答案以突出这一点,我会将其标记为已接受..
猜你喜欢
  • 1970-01-01
  • 2013-07-25
  • 2011-09-14
  • 1970-01-01
  • 2017-02-25
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
相关资源
最近更新 更多