【问题标题】:IE Compatibility Mode IssuesIE 兼容模式问题
【发布时间】:2013-03-27 21:36:12
【问题描述】:

我在网站和各种连接的网络应用程序中设置 IE 兼容模式时遇到问题,经过对该主题的大量研究,我仍然对它的工作原理感到有些困惑。基本上,我正在处理通过 IE10 访问时出现问题的公司网站,并试图将其设置为在 IE9 兼容模式下运行。有许多第三方控件和站点的各种其他元素在 IE10 上不起作用,我还没有时间完全更新这个站点(它是一个相当大的站点)。我发现的所有内容都告诉我通过将代码添加到 Web 配置文件或在标头中的元标记中来设置兼容模式。看起来很简单。

<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=9" />
  </customHeaders>
</httpProtocol>

<meta http-equiv="X-UA-Compatible" content="IE=9">

现在,当我手动设置兼容模式(不是在代码中,而是在我自己的浏览器中)时,一切正常,这是我通过 IE 开发人员工具看到的。

Browser Mode: IE10 Compat View    Document Mode: IE9 Standards

这里的问题是,当我通过上面列出的方法之一在我的代码中设置它时,这就是我所看到的,似乎没有任何改变。

Browser Mode: IE10    Document Mode: IE9 Standards

请注意,这里只有文档模式受到影响,这与我手动进行更改时不同。如前所述,我对此进行了大量研究,但仍然不太了解浏览器模式和文档模式之间的区别,或者为什么我似乎需要更改的模式不受每个人似乎在这里推荐的解决方案的影响。任何人都可以帮助我准确理解这意味着什么以及重点是什么,更重要的是,有人知道如何做我在这里想要完成的事情吗?

【问题讨论】:

  • 嗨,awhitehouse,我也遇到了同样的问题,除了更改目标框架之外,还有其他方法可以解决这个问题吗?
  • 对我来说,这个网站在手动设置为兼容模式时运行良好,但在元标记浏览器模式未设置为兼容时尝试相同。

标签: asp.net internet-explorer cross-browser


【解决方案1】:

IE 不允许您以编程方式设置Browser Mode 选项。 X-UA-Compatible 设置只设置Document Mode,没有其他设置可以用于Browser Mode

不过,幸运的是,在大多数情况下,您不必担心Browser Mode

Document Mode 是改变实际渲染引擎的那个;这是 IE 在 IE9 模式下显示内容的重要一环。

Browser Mode 不那么重要。所有这一切都是设置用户代理字符串 - 即浏览器发送到服务器以识别您正在使用的浏览器的文本。页面的实际呈现不受此设置的影响。

因此,假设您的网站没有通过查看用户代理字符串来进行任何服务器端浏览器嗅探,那么您完全不必担心Browser Mode

如果您正在进行浏览器嗅探,那么它可能会影响到您。如果是这种情况,那么您将有点卡住,因为您无法强制浏览器更改模式,但在这种情况下,我建议您尝试不同的技术。人们普遍认为,出于各种原因,嗅探用户代理字符串是一个坏主意。在这种情况下,您最好使用客户端特征检测。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2016-08-11
    • 2011-06-30
    • 1970-01-01
    • 2014-08-01
    • 2011-10-02
    • 1970-01-01
    • 2014-07-02
    • 2014-05-01
    • 2012-01-28
    相关资源
    最近更新 更多