使用 X-UA-Compatible 在企业设置中模拟 IE9

Using X-UA-Compatible to emulate IE9 in corporate setup

我一直在阅读有关 IE 中的文档类型模拟和兼容模式的文章,不得不说这让我有点头疼。

我开发了一个带有 Bootstrap 3 和 Ember 呈现通过菜单控制的几个页面的应用程序。

我在所有浏览器、Webkit、Moz 和 IE 中对此进行了测试,一切看起来都很完美。我在一家大公司工作,所以当我决定在我同事的一些计算机上测试它时,在 IE 上,我得到了一个空白页面。现在我发现很奇怪,因为它们都是 运行 IE10 或 IE11,尽管有奇怪的 IE9。我无法理解它,因为它在我的 IE 上完美呈现。

所以无论如何,我开始在他们的浏览器上按 F12 并意识到他们中的许多人都有 IE7 模拟,即使他们是 运行 IE10 或 11。

我阅读了一些有关此问题的内容,发现以下内容:

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

所以我继续将这一行添加到我的页面,如下所示:

<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />

现在我的问题是:我假设如果在工作中使用 IE 时设置了某种组策略,那么此解决方法将解决问题,我是否正确?

明天早上我会做一些测试,但只是想知道这是否正确?

工作中有很多人使用 Chrome 和 Firefox 或任何他们想要的东西,但显然有不少人使用 IE。

IE 使用不同的 security zones for different types of content. Stuff from the Internet is loaded in the Internet zone. Stuff from the local network is loaded in the Intranet zone. If you go through Internet Options, you can see that there are different security settings 应用于各个区域。

如果您通过网络部署应用程序,那么您的应用程序很可能会在 Intranet 区域中加载应用程序(右键单击该页面,然后选择“属性”进行确认)。

默认情况下,IE 以兼容性视图加载内网页面,这与使用 EmulateIE7 作为 x-ua-compatible 元素的内容值相同。这意味着,如果没有额外的 tagging/changes,您的应用将被视为在 IE7 中查看。

如果您需要特定的文档模式,您应该能够直接在内容值中指定该模式,例如 content="ie=9"。如果这没有帮助,请尝试 adding an MotW 到该页面,以便该页面加载到 Internet 区域。反过来,这应该允许 x-ua-compatible 设置生效。

您还可以更改 Compatibility View Settings,前提是它们未通过 GPO 禁用,这样 Intranet 页面就不会在兼容性视图中自动加载。

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

-- 兰斯

请注意,必须有一个原因将当前组策略设置为启用兼容模式(可能是其他一些 Intranet 应用程序),如果您禁用它,其他应用程序可能会停止工作(或呈现严重)。如果管理员以一种有兼容性视图列表的方式配置它,那么您很幸运,因为您需要做的就是不将您的 Web 应用程序的 URL 包含到该列表中。

https://msdn.microsoft.com/en-us/library/ie/gg622935(v=vs.85).aspx

关于文档模式,我建议你改用这个:

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

Setting the version to 'IE=edge' tells Internet Explorer to use the latest engine to render the page and execute JavaScript.

https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible

您想要 "IE=EmulateIE9" 的唯一原因是您的应用程序针对旧版文档模式,而在您的情况下并非如此,因为您使用的是最新的网络框架。我假设您希望为您的用户提供最好的 UI 体验。

我了解到您的 IE 版本各不相同,有些版本可能不支持 "IE=edge"。它会很好,因为它会回退到最高支持的文档模式。例如,带有 IE=9、IE=Edge 或 IE=EmulateIE9 的 IE8 会导致 IE8 模式。

https://msdn.microsoft.com/en-us/library/ff405771(v=vs.85).aspx