Internet Explorer 11通过元标记禁用"在兼容性视图中显示Intranet站点"

Pri*_*cey 98 html html5 compatibility internet-explorer internet-explorer-11

我一直在Intranet网站超过6个月时我一直在使用下面的HTML5 doctype和边缘兼容性meta标签,迫使IE浏览器不效仿旧的浏览器版本,这已工作确定.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>My title</title>
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是因为我工作的地方使用策略设置来启用所有Intranet站点的兼容性视图,并且使用该EDGE设置的这种方法在Internet Explorer 9中有效.

Intranet站点兼容性视图设置

一个多月前,我升级到Internet Explorer 11,该网站仍按预期工作.

如今,这个停止工作不如预期,我不能肯定地说,但我认为,这迫使兼容性视图策略中的IE11中未启用,现在是...,因为这已经开启兼容性meta标签不再做了预期的事情,这个站点正在模拟IE8的企业模式下运行.

有没有人知道如何解决这个问题并在强制执行兼容性"企业模式"时强制IE11在Intranet站点上使用?并且无法通过浏览器设置禁用?

编辑

我刚刚尝试在我的web.config中添加自定义标头,如本答案中所述 /sf/answers/1278004591/

这对我不起作用我仍然在开发人员工具栏控制台中收到以下消息

HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
Run Code Online (Sandbox Code Playgroud)

就好像版本8被视为edge在IE11中启用此Intranet兼容性设置时.

这篇文章:https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---disabling-compatability-mode 解释得很好,我还没有尝试通过代码设置此标头我们的用户无权更改其浏览器设置..其他任何更改都没有.

UPDATE

请参阅我对此帖子的评论,了解企业模式和兼容模式之间的区别,因为它很重要.

spa*_*owt 91

确保:

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

<meta>您网页上的第一个标记,否则IE可能不尊重它.

或者,问题可能是IE正在为此网站使用企业模式:

  • 您的问题提到控制台显示: HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
  • 如果是这样,您可能需要禁用企业模式(或类似)或从IE的"工具"菜单中关闭该网站.
  • 但是理论上,企业模式应该被X-UA-Compatible标签覆盖,但IE可能有一个错误......

  • 就是这样!@#$烦人,浪费了全世界数十万小时的网页开发人员. (13认同)
  • 尽管相似,但“企业模式”和“兼容性视图”不同。即使勾选了“在兼容性视图中显示Intranet站点”,X-UA-Compatible标签也应覆盖它。但是,企业模式可能会覆盖...在网站上看到企业模式图标(http://media.askvg.com/articles/images5/Internet_Explorer_Enterprise_Mode_Enabled.png)吗? (2认同)

rus*_*tyx 18

此问题通常是由网站/内部网URL放置在以下之一:

  • 兼容模式列表
  • Internet Explorer Intranet区域
    (启用了兼容性视图设置中的显示Intranet站点)
  • 企业模式列表

在公司网络上,这些兼容性视图设置通常通过组策略进行集中控制.在您的情况下,企业模式似乎是罪魁祸首.

IE 11企业模式

不幸的是,设置META X-UA-Compatible 不会覆盖这一点.

对于最终用户

有时,最终用户覆盖此选项的唯一方法是按F12并更改" 仿真"选项卡下的" 文档模式 " .但是,此设置不是永久性的,并且可能会在Developer Tools关闭后恢复.

您还可以尝试从Intranet区域中排除您的站点.但是,属于Intranet区域的域列表通常也受组策略的控制,因此这种工作的可能性很小.

要查看属于Intranet区域的域列表,请转到:

工具 - > Internet选项 - >安全 - >站点 - >高级

如果列表包含您的子域并且显示为灰色,那么在您的网络管理员允许之前,您将无法覆盖兼容性视图.

您确实需要与网络管理员联系,以允许更改组策略中的兼容性视图设置.

对于网络管理员

在打开开发人员工具(F12)的情况下加载网站通常会报告IE切换到较旧模式的原因.

上面提到的所有3个设置通常都是通过组策略控制的,但有时可以在用户计算机上覆盖.

如果企业模式是问题(如原始海报的情况),以下两篇文章可能会有所帮助:


Jas*_*ell 7

对于那些正在构建ASP.NET MVC项目的人,请确保添加:

<meta http-equiv="X-UA-Compatible" content="IE=edge">
Run Code Online (Sandbox Code Playgroud)

标记到您的布局(模板)页面.我只花了两个小时调试和调整,只是意识到我只在我的子页面中添加了这个元标记.只要我将其添加到我的布局页面,浏览器就会完全加载到EDGE模式.