1

我正在使用以下 asp.net 代码来检测浏览器类型:

   System.Web.HttpBrowserCapabilities browser = Request.Browser;
            if (browser.Browser == "IE" && browser.MajorVersion == 7)
            {
                do stuff...
            }

我正在运行 IE9,但是当我调试时,browser.MajorVersion 始终为 7。什么可能导致这种情况,我该如何防止它?

4

2 回答 2

3

确保您在开发人员工具中将浏览器模式设置为 IE9

开发者工具

这就是 MS 关于 doctypes源链接的说法

  1. 如果网页指定 doctype 指令并包含 X-UA-Compatible 标头,则标头优先于指令。

  2. 如果浏览器支持页眉,但不支持任何指定的文档模式,它将使用支持的最高文档模式来显示网页。

不支持标头的旧版本浏览器使用 来确定文档模式。

Internet Explorer 9 及更早版本在 IE5 (Quirks) 模式下显示没有指令的网页。因此,我们建议所有网页都指定一个指令,例如 HTML5 doctype。

这种灵活性可以最大程度地兼容仍然流行的早期版本的 Internet Explorer。

注意 因为所有受支持的 Internet Explorer 版本(包括 Microsoft Internet Explorer 6)都将 HTML5 文档类型解释为标准模式文档类型,所以我们建议对不需要不同声明的所有网页使用 HTML5 文档类型。这可确保您的网页以最高可用标准模式显示。

X-UA-Compatible 标头不区分大小写;但是,它必须出现在网页的标题(HEAD 部分)中,位于除标题元素和其他元元素之外的所有其他元素之前。

于 2013-02-11T23:10:08.437 回答
1

您需要为您的网页指定特定的文档模式,使用 meta 元素在您的网页中包含X-UA-Compatible标头,如下例所示。

<html>
  <head>
    <!-- Enable IE9 Standards mode -->
    <meta http-equiv="X-UA-Compatible" content="IE=9" >
    <title>My webpage</title>
  </head>
  <body>
      <!-- Your Content -->
  </body>
 </html> 
于 2013-02-11T23:18:36.253 回答