71

IE8中有“Internet Explorer 8”、“Internet Explorer 8兼容模式”和IE7模式。

但是,IE 中的默认设置使所有 Intranet 网站都使用“IE8 兼容模式”,即使我已按照建议设置了 doctype、元标记、http 标头以强制其进入 IE8 模式。

我有

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 过渡//EN" " http://www.w3.org/TR/html4/loose.dtd ">

<meta http-equiv="X-UA-Compatible" 内容="IE=8" >

但它仍然进入“IE8 兼容模式”,IE 设置没有任何变化。

如何在不更改任何浏览器设置的情况下强制它进入纯“IE8”模式?

PS。我不是在说“文档模式”。

4

13 回答 13

45

似乎 MSFT 没有考虑我们在其中运行许多不同的 Web 应用程序的大型 Intranet 环境。

根据我在 MSDN 论坛上读到的某处,无法绕过 IE8 设置。

因此,我将不得不请求我的系统管理员设置一些新的组策略来更改“兼容性视图”设置和值并防止用户更改值,直到 MSFT 发现这个错误并修复它。

来自MSDN 博客文章(强调他们的):“在 IE 请求 Web 内容之前选择浏览器模式。这意味着站点无法选择浏览器模式。”

于 2010-05-03T01:33:25.487 回答
35

可以覆盖 Intranet 中的兼容模式。只需将以下代码添加到 web.config。使用 IE9 为我工作。

<system.webServer>
<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=edge" />
  </customHeaders>
</httpProtocol>

于 2011-05-04T17:15:13.167 回答
11

您必须对 IE 进行一些调整。

他们来了.....

在 Internet 选项/本地 Intranet/站点中

在:站点内的本地 Intranet 下,取消选中“自动检测 Intranet 网络”。

然后只选择“包括所有网络路径 (UNCs)

请参阅随附的屏幕截图

截屏

于 2010-04-30T12:55:44.657 回答
6
于 2010-11-09T03:46:24.000 回答
4

要覆盖 Intranet 或所有网站的兼容性视图设置,您需要让 IE8 模拟自己。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
于 2011-04-25T18:40:41.930 回答
3

设置自定义 HTTP 标头,而不是使用该<meta...部分中的<head>。这些应该是等效的,但我已经看到X-UA-Compatible来自服务器的 HTTP 标头将覆盖 IE 8 的“在兼容性视图中显示 Intranet 站点”设置,而该<meta...元素不会。

于 2010-04-30T15:05:32.987 回答
2

如果您使用的是 .NET,我可以为您解答:

HTML

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

网络配置:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=8" />
      </customHeaders>
    </httpProtocol>
于 2012-10-12T13:49:48.603 回答
1

在某处读到 DOCTYPE 声明必须是第一行。没有任何评论,也没有空行。

结合设置 HTTP 响应标头,这对我有用。Browser Mode从“IE9 兼容模式”变成了“IE9 模式”。

于 2011-12-22T17:34:55.063 回答
0

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation IntranetCompatibilityMode 1-->0

于 2011-11-18T03:44:44.520 回答
0

为了使 META 声明起作用,文档类型必须是简化版本:

<!DOCTYPE html>

不是丹尼斯问题中较长的陈述。

于 2012-03-01T01:34:42.300 回答
0

这个组合对我有用:

<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
</HEAD>

至少 IE 开发者工具报告 IE9 Compat View, IE8 标准

只是为了好玩,我尝试了 EmulateIE7,效果也很好。简化扩展的 !DOCTYPE 是关键。

于 2013-01-10T17:40:33.617 回答
0

您需要从您的域名站点中删除端口号 site: 1180 /index/

如果浏览器在 url 中看到端口号 - 嗨“think”,那就是 Intranet。

设置您的 dns 服务器以获得友好的 url - site.com/index并且它工作正常

于 2013-03-14T07:50:39.207 回答
0

标记为“正确”的答案在技术上是正确的,但表明大多数人面临的真正问题没有解决方案,即:“我如何在 IE8 上正确显示,启用兼容模式,不支持的 Web 应用程序兼容模式?”。

<!DOCTYPE HTML>
<HEAD>
    <meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>

这在几个工作站上对我有用。

如果上面的代码是在应用程序端实现的,IE8 的行为就好像它没有处于兼容模式,即使它仍然会将浏览器模式显示为兼容模式。

于 2015-01-13T09:19:47.253 回答