IE 的 IIS 兼容模式设置

IIS Compatability Mode setting for IE

我不确定以前是否有人问过这个问题,但在这里。我们知道我们可以通过 HTTP 响应 header 在 IIS 中为我​​们的站点设置兼容模式设置

 X-UA-Compatible    IE=<Version>

对此我有以下问题:

  1. 哪种兼容模式优先,配置IIS的还是Master Page里面的?

  2. 可以通过IIS设置多个兼容性吗?如果是如何?逗号分隔成这样?

    X-UA-Compatible    IE=<Version1,Version2>
    

    或多个 header 像这样

    X-UA-Compatible    IE=<Version1>
    X-UA-Compatible    IE=<Version2>
    

    还是两种方式都有?

  3. 如果通过 IIS 可以进行多个兼容设置,哪个设置优先?例如,如果我希望我的站点在 IE10 和 IE11 的 IE7 模式下为 运行,在 IE8 和 IE9 的 IE8 模式下,是否可以使用点号。 2??

顺序:

  1. 根据 the documentation,HTML 页面中的内容会覆盖网络服务器提供的内容。
  2. 另一个 piece of documentation 显示如何指定多个文档模式值:

    <meta http-equiv="X-UA-Compatible" content="IE=7,9,10" >
    
  3. 根据之前的 documentation citation,由内容值指定的最高支持模式获胜。对于前面的示例:

    • IE7和IE8使用IE7标准模式
    • IE9使用IE9标准模式
    • 桌面版 IE10 和 IE11 使用 IE10 标准模式
    • Windows商店体验中的IE11使用IE11标准模式(因为不支持文档模式)。
    • MS Edge 使用 MS Edge 模式(因为它不支持文档模式。 回答您的最后一个问题:否。文档模式旨在支持较早版本的较新版本。 (想法是每个版本的标准模式都在另一个版本上有所改进。)

文档确实提供了流程图来说明这一点,尽管这些看起来并不一致:

  • compliance docs provide the most detail regarding document modes (see the child pages in the sidebar), including this handy chart.

  • compatibility cookbook also contains a handy chart, but it looks as if it's been mis-identified. It claims to show the decision tree for IE11, however a closer review shows that it more likely shows the decision tree for Enterprise Mode IE (EMIE),一种仅 IE11 模式,比 IE11 更忠实地模拟 IE8。

这种复杂性是不再支持文档模式的主要原因。

另外,请注意您交付结果的方式也会产生影响。如果站点交付于Intranet 区,您不妨考虑使用Mark of the Web 将站点部署在Internet 区,以简化文档模式评估过程。

希望这对您有所帮助...

-- 兰斯