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

时间:2015-04-28 18:06:58

标签: html internet-explorer x-ua-compatible

我一直在阅读有关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浏览器。

2 个答案:

答案 0 :(得分:1)

IE对不同类型的内容使用不同的security zones。来自Internet的资料将加载到Internet区域中。来自本地网络的资料将加载到Intranet区域。如果您浏览“Internet选项”,则可以看到对各个区域应用了不同的security settings

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

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

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

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

希望这会有所帮助......

- Lance

答案 1 :(得分:1)

请注意,必须有一个原因可以将当前组策略设置为启用兼容模式(可能是某些其他Intranet应用程序),并且如果您禁用了其他应用程序可能会停止工作(或渲染错误)。如果管理员已经按照兼容性视图列表的方式对其进行了配置,那么您很幸运,因为您需要做的就是不将您的网络应用程序的URL包含在该列表中。

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

至于文档模式,我建议你改用它:

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

将版本设置为&#39; IE = edge&#39;告诉Internet Explorer使用   用于呈现页面和执行JavaScript的最新引擎。

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

你想要的唯一理由&#34; IE = EmulateIE9&#34;是您的应用程序定位于旧文档模式,在您的情况下它不是因为您在那里使用最新的Web框架。我假设您希望为用户提供最佳的UI体验。

据我所知,在你的情况下,IE版本有所不同,有些人可能不支持&#34; IE = edge&#34;。它会好的,因为它将回退到支持最高的文档模式。例如,IE8的IE = 9,IE = Edge或IE = EmulateIE9会导致IE8模式。

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