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

但是,IE中的默认设置使所有Intranet网站都使用“ IE8兼容模式”,即使我已经设置了Doctype,Meta标签,HTTP标头,建议将其强加于IE8模式。

我有

u003C!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd">

u003Cmeta http-equiv="X-UA-Compatible" content="IE=8" >

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

如何将其强制为纯的“ IE8”模式,而无需更改任何浏览器的设置?

PS。我不是在这里谈论“文档模式”。

有帮助吗?

解决方案

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

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

因此,我将不得不乞求系统管理员,以更改“兼容性视图”设置和值并防止用户更改值,直到MSFT发现此错误并修复它为止。

从一个 MSDN博客文章 (强调他们的):”在IE请求Web内容之前选择浏览器模式. 。这意味着 网站无法选择浏览器模式."

其他提示

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

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

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

他们来了.....

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

下:局部Intranet内部站点,取消选中“自动检测Intranet网络”。

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

请参阅随附的屏幕截图

Screenshot

我在这里很难遵循答案,因此,这是简而言之的重要信息:

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

:

兼容性视图和企业

当今有大量的企业网站网站是Internet Explorer 7。为了保持兼容性,Internet Explorer 8船具有基于区域评估的智能默认设备。在默认状态下,Internet Explorer 8标准模式(兼容性查看)和 所有Intranet网站在Internet Explorer 7标准模式中显示 (兼容视图)。

让我们看一些例子。如果您导航到本地网络上的网站 http:// myportalhttp:// sharepoint/stites/mysite, Internet Explorer 8使用“ 7”的用户代理字符串,“ 7”的版本向量来识别自身, ,并显示在Internet Explorer 7标准模式下触发标准模式的网页。这种组合允许在Internet Explorer 7中正确工作的网页继续在IE8中继续这样做。

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

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

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

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

在某个地方阅读Doctype声明必须是 非常第一行. 。没有任何形式的评论,也没有空排。

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

hkey_current_user Software Microsoft Internet Explorer browseremulation intranetCompatibilitymode 1-> 0

为了使Meta声明起作用,Doctype必须是简化的版本:

<!DOCTYPE html>

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

这个组合为我带来了技巧:

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

至少IE开发人员工具报告IE9 Compat视图,IE8标准

只是为了踢,我尝试了Emulateie7,这也起作用。简化扩展!Doctype是关键。

您需要从域名站点网站上删除端口号:1180/指数/

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

设置您的DNS服务器以供友好URL- site.com/index 而且好起来

标记为“正确”的答案在技术上是正确的,但表明大多数人都无法解决实际问题:兼容模式?”。

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

这对我来说是在几个工作站上工作的。

如果以上代码是在应用程序端实现的,则IE8似乎的行为似乎不在兼容模式下,即使它仍然将浏览器模式显示为兼容模式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top