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

时间:2010-04-30 07:08:38

标签: html internet-explorer-8 ie8-compatibility-mode x-ua-compatible ie8-browser-mode

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

然而,IE中的默认设置使所有Intranet网站都使用“IE8兼容模式”,即使我已经设置了doctype,元标记,http标头,建议将其强制进入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。我不是在说“文档模式”。

13 个答案:

答案 0 :(得分:44)

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

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

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

来自MSDN blog post(强调他们的):“ 浏览器模式是在IE请求网络内容之前选择 。这意味着网站无法选择浏览器模式。“

答案 1 :(得分:35)

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

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

答案 2 :(得分:11)

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

这里他们是.....

在Internet选项/本地Intranet /站点

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

然后仅选择“包括所有网络路径(UNC)

参见随附的屏幕截图

Screenshot

答案 3 :(得分:6)

我发现这里的答案很难理解,所以这里的重要信息简而言之:

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

来自this

  

兼容性视图和企业

     

大量的业务线   网站是Internet Explorer 7   今天有能力为了保存   兼容性,Internet Explorer 8   基于智能默认值的船舶   区域评估。在默认状态下,   公共互联网上的所有网站   在Internet Explorer 8中显示   标准模式(兼容性视图   off)和所有内部网站点   在Internet Explorer 7中显示   标准模式(兼容性视图   上)。

     

让我们看一些例子。如果你   导航到您当地的网站   内联网,如http://myPortal和   http://sharepoint/sites/mySite,    Internet Explorer 8使用用户代理字符串标识自己   '7',版本矢量'7',和   显示触发的网页   Internet Explorer 7中的标准模式   标准模式。这种组合   允许正常工作的网页   在Internet Explorer 7中继续   在IE8中这样做。

答案 4 :(得分:4)

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

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

答案 5 :(得分:3)

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

答案 6 :(得分:2)

如果您使用的是.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>

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

为了使META声明有效,doctype必须是简化版本:

<!DOCTYPE html>

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

答案 10 :(得分:0)

这个组合为我做了诀窍:

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

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

只是为了踢,我尝试了EmulateIE7,这也很有用。 简化扩展!DOCTYPE是关键。

答案 11 :(得分:0)

您需要从域名站点删除端口号 网站:的 1180 /索引/

如果浏览器在网址中看到端口号 - 嗨“想”,那就是内联网。

为友好网址设置您的DNS服务器 - site.com/index ,它可以正常工作

答案 12 :(得分:0)

答案标记为&#34;正确&#34;在技​​术上是正确的,但建议大多数人面临的实际问题没有解决方案:&#34;如何在IE8上正确显示,启用兼容模式,不支持兼容模式的Web应用程序?& #34 ;.

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

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

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