在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它仍然将浏览器模式显示为兼容模式。