在Intranet中强制使用“Internet Explorer 8”浏览器模式

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

然而,在IE的默认设置使所有的内网网站使用“IE8兼容模式”,即使我已经设置DOCTYPE,meta标签,HTTP标头为build议强制进入IE8模式。

我有

<!DOCTYPE HTML PUBLIC“ – // W3C // DTD HTML 4.01 Transitional // EN”“ http://www.w3.org/TR/html4/loose.dtd ”>

<meta http-equiv =“X-UA-Compatible”content =“IE = 8”>

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

如何强制它进入纯粹的“IE8”模式,而不改变任何浏览器的设置?

PS。 这里我不是在说“文件模式”。

似乎MSFT并没有考虑到我们有很多不同的Web应用程序运行在内部的大型Intranet环境。

根据我在MSDN论坛上阅读的地方,没有办法绕过IE8的设置。

所以,我不得不请求我的系统pipe理员增加一些新的组策略来更改“兼容性视图”设置和值,并阻止用户更改值,直到MSFT发现此错误并修复它。

从MSDN的博客文章 (强调他们的):“ 浏览器模式是在IE请求网页内容之前select的,这意味着网站不能select浏览器模式

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

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

你将不得不对IE做一些调整。

他们来了…..

在Internet选项/本地内联网/网站

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

然后select“包含所有networkingpath(UNC)

看附加的截图

截图

我发现这里的答案很难遵循,所以这里是重要的信息:

如果您的Intranet使用IE的默认设置,则无论任何网站设置如何,IE7标准模式都将针对Intranet站点执行。

从这个 :

兼容性视图和企业

目前大量的业务线网站是Internet Explorer 7。 为了保持兼容性,Internet Explorer 8提供了基于区域评估的智能默认值。 在默认状态下,公共Internet上的所有站点以Internet Explorer 8标准模式(兼容性视图closures) 显示所有Intranet网站以Internet Explorer 7标准模式 (兼容性视图打开)显示。

我们来看一些例子。 如果您导航到本地Intranet上的站点(如http:// myPortal和http:// sharepoint / sites / mySite) ,则Internet Explorer 8会以“7”版本vector为“7”的用户代理string标识自身 ,并显示在Internet Explorer 7标准模式下触发标准模式的网页。 这种组合允许在Internet Explorer 7中正常工作的网页在IE8中继续这样做。

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

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

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

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

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

如果你使用.NET,我有你的答案:

HTML

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

Web.Config中:

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

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

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

 <!DOCTYPE html> 

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

这个组合为我做了诡计:

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

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

只是为了踢我试着EmulateIE7,那也工作。 简化了扩展!DOCTYPE是关键。

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

如果浏览器看到端口号在url – 嗨“想”,这是内联网。

设置你的DNS服务器友好的url – site.com/index ,它的工作正常

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

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

这在几个工作站上为我工作。

如果上面的代码是在应用程序端实现的,IE8看起来好像不是处于兼容模式,尽pipe它仍然将浏览器模式显示为兼容模式。