【问题标题】:Inconsistent UserAgent strings with IE9与 IE9 不一致的 UserAgent 字符串
【发布时间】:2011-09-09 10:26:40
【问题描述】:

我有一个网站在 IIS6 的服务器上运行。该网站在端口 80 上配置了两个主机头绑定:

  • mywebsite1
  • mywebsite2.mydomain.com

所以,理论上使用网络浏览器访问:

...应该在我的浏览器中显示完全相同的网站。

但是,当我用IE9查看http://mywebsite1/时,浏览器发送给web服务器的UserAgent是这样的:

Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+Trident/5.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+Tablet+PC+2.0;+MS-RTC+LM+8;+OfficeLiveConnector.1.5;+OfficeLivePatch.1.3;+.NET4.0C)

但是当我用IE9查看http://mywebsite2.mydomain.com/时,浏览器发送给web服务器的UserAgent是这样的:

Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+Trident/5.0)

为什么 IE9 在这两种情况下会发送不同的 UserAgent 字符串?浏览器也在模拟这些用户代理的渲染规则,所以这会导致噩梦般的 CSS 问题!

附加信息:

  • 我已经在页头标签中加入了。
  • 网站是 ASP.NET Framework 3。
  • Web 服务器是 IIS 6。
  • 网络浏览器是 IE9。
  • (如果您希望我澄清其他任何事情,请告诉我)

【问题讨论】:

    标签: internet-explorer iis-6 cross-browser internet-explorer-9


    【解决方案1】:

    IE9 reports Mozilla/4.0 在兼容性视图中,您在查看http://mywebsite1/ 时是否单击了“撕裂页面”图标? (视图也可以是 requested 所提供的 html。)

    【讨论】:

    • 啊,是的,这使得两个 URL 一致,但实际上是另一个主机头版本显示了“撕裂的页面”图标。 mywebsite1 不显示“撕页”图标。是什么触发了撕裂的页面在 IE9 中显示?
    • 来自服务器的响应标头或 HTML 中的元标记可以做到这一点,或者如果您误点击并设置视图,它会粘住 - 看看 @stackoverflow.com/questions/3726357/…
    • 完美。感谢您的帮助。
    【解决方案2】:

    这将改变用户代理;但是,当我更改用户代理时,它将仅适用于我所在的网站并且我在网上冲浪时,用户代理将恢复为默认设置。这是我用于更改用户代理的代码

    WebBrowser1.Navigate(txtAddressBar.Text, Nothing, Nothing, "user-agent:" & "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) ChromePlus/ 4.0.222.3 Chrome/4.0.222.3 Safari/532.2")

    此代码贴为一行;但是,我不知道如何在这里做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-05
      • 2010-11-13
      • 2021-08-13
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多