标签: ie8-compatibility-mode

X-UA-Compatible设置为IE = edge,但它仍然不会停止兼容模式

我很困惑.我应该可以设置

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Run Code Online (Sandbox Code Playgroud)

IE8和IE9应使用最新的渲染引擎呈现页面.但是,我刚刚对它进行了测试,如果在我们网站的其他地方启用了兼容模式,它将保留在我们的页面上,即使我们应该强制它不要.

怎么是你应该确保IE浏览器没有(甚至在企业内部网)使用兼容模式?

FWIW,我正在使用HTML5 DocType声明(<!doctype html>).

以下是该页面的前几行:

<!doctype html> 
<!--[if lt IE 7 ]> <html lang="en" class="innerpage no-js ie6"> <![endif]--> 
<!--[if IE 7 ]>    <html lang="en" class="innerpage no-js ie7"> <![endif]--> 
<!--[if IE 8 ]>    <html lang="en" class="innerpage no-js ie8"> <![endif]--> 
<!--[if (gte IE 9)|!(IE)]><!--> 
<html lang="en" class="innerpage no-js"> 
<!--<![endif]--> 
    <head> 
        <meta charset="ISO-8859-1" /> 
        <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
Run Code Online (Sandbox Code Playgroud)

编辑:我刚刚了解到 IE8的默认设置是对Intranet站点使用IE7兼容模式.这会覆盖X-UA兼容的元标记吗?

internet-explorer ie8-compatibility-mode x-ua-compatible

246
推荐指数
9
解决办法
37万
查看次数

JavaScript:我可以检测IE9是否在IE7或IE8兼容模式下?

我需要知道通过用户代理字符串识别自己的IE7或IE8的浏览器是否真的是那些浏览器,或者它是否是7或8兼容模式下的IE9.

从我在用户代理字符串中看到的,IE7兼容模式下的IE9,为真正的IE7提供了相同的字符串.是否有一个额外的属性/元素/对象,我可以测试它是否真的"伪装"IE9?

我假设文档模式无效,因为我的脚本加载到的页面可能是强制怪癖或强制特定设置.

我希望IE9具有一些存在的属性,无论是在7,8或9模式下都可以测试.


编辑添加...

好的,我现在看到我哪里出错了.我正在使用"浏览器模式"下拉菜单并将其切换到IE8和IE7,并认为这分别是"IE8兼容模式"和"IE7兼容模式".这当然不是真的.开发人员工具的浏览器模式确实将其切换为"就像"那些旧的浏览器,因此报告原始的useragent字符串是正确的.

如果我留在IE9或兼容IE9浏览器模式,并尝试将文档模式下拉变种来代替的话,我其实做得到"三叉戟/ 5.0"存在于所有8种组合(双浏览器模式和4种文档模式).我只需要避免选择浏览器模式IE7和IE8,因为它们确实是(模拟)IE7和IE8.

因此,页面,非开发人员用户,元标记或Microsoft的兼容性列表都无法将IE9置于这种无法识别的状态.

只需使用if(navigator.userAgent.indexOf("Trident/5")>-1)就足够了.

别担心,这不适用于样式,格式,逻辑或页面内容.我对这些东西使用特征检测.我只需要检测IE9(无论它处于什么模式)并做出非页面内容决定.

感谢您通过您的建议和链接指导我的答案.

javascript ie8-compatibility-mode internet-explorer-9

87
推荐指数
5
解决办法
9万
查看次数

如何从服务器端强制设置IE的兼容模式?

在域控制的环境中,我发现在某些客户端(winXP/Win7,IE8/IE9)上触发兼容模式,即使我们提供X-UA标签,!DOCTYPE定义和"IE = Edge"响应头.这些客户端勾选了"在兼容性视图中显示Intranet站点"复选框.这正是我试图覆盖的内容.

以下是我用来尝试了解IE如何实际触发兼容模式的文档.

http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx

http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx

网站所有者始终控制其内容.网站所有者可以选择使用X-UA-Compatible标签来绝对声明他们希望他们的网站如何显示以及将标准模式页面映射到IE7标准.使用X-UA-Compatible标记会覆盖客户端上的兼容性视图.

谷歌的"定义文档兼容性",遗憾的是SPAM引擎不允许我发布超过2个网址.

这是一个ASP .NETWeb应用程序,在主页面上包含以下定义:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
   <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
Run Code Online (Sandbox Code Playgroud)

web.config

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="X-UA-Compatible" value="IE=Edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我已经使用Fiddler来检查标头是否确实被正确注入.

我的理解是,通过这些设置,我应该能够覆盖"在兼容性视图中显示Intranet站点"浏览器设置.但根据客户端的不同,我发现其中一些仍会触发兼容模式.它似乎也取决于机器级别而不是策略组设置,因为即使我在不​​同客户端上使用相同的凭据集,我也会获得不同的结果.

禁用兼容性视图设置复选框可以解决问题.但实际目的是确保无论客户端设置如何,应用程序都以完全相同的方式呈现.

任何想法和我可能会错过的东西?是否有可能强制IE始终渲染页面而不触发Compat模式?

太感谢了,

乌梅

PS:该网站目前正在开发中,当然不在微软的兼容性列表中,但我也检查过以防万一.

谷歌"了解兼容性视图列表",遗憾的是SPAM引擎不允许我发布超过2个网址.

asp.net internet-explorer ie8-compatibility-mode x-ua-compatible

84
推荐指数
3
解决办法
14万
查看次数

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

IE8中有"Internet Explorer 8","Internet Explorer 8兼容模式"和IE7模式.

但是,IE中的默认设置使所有Intranet网站都使用"IE8兼容模式",即使我已经设置了doctype,meta标签,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.我不是在说"文件模式".

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

70
推荐指数
4
解决办法
9万
查看次数

强制IE9模拟IE8.可能?

这有可能吗?我尝试将此添加到页面,但它没有改变一件事.

<meta http-equiv="X-UA-Compatible" content="IE=8">
Run Code Online (Sandbox Code Playgroud)

更新 - 我正在尝试这样做,因为我们的网站有一些IE9特定的CSS问题,这些问题不会出现在IE8中.

谢谢

html browser internet-explorer ie8-compatibility-mode x-ua-compatible

47
推荐指数
2
解决办法
13万
查看次数

具体哪些因素会导致IE8触发兼容模式?

我有一个应用程序,在某些情况下导致IE8弹出兼容性消息并在compat模式下重新加载:

显示问题导致Internet Explorer使用兼容性视图刷新网页

这是罕见的,据我所知,由于元标记不会发生.它发生在对改变DOM的用户操作的响应中.这是同样的问题:https://superuser.com/questions/215281/how-do-i-stop-ie-jumping-into-compatability-view,但我的问题是:什么类型的事情导致这种情况,如帮助修复它.

换句话说,请访问此站点thesitewizard.com,其中IE8中兼容模式的第三个原因描述为:

有时候,对于其他一些不可思议的,没有文件记载的理由,在符合标准的页面上(或者至少在候选版本1中这样做).

问题是:什么是不可思议的,无证的原因?

html internet-explorer-8 ie8-compatibility-mode

32
推荐指数
3
解决办法
1万
查看次数

检测IE8兼容模式

可能重复:
在IE7兼容模式下区分IE7浏览器和浏览器

我们没有时间用我们相当广泛的系统来完全测试IE8.我们也达到了不能禁止使用IE8的程度.我们的用户很顽固,而且不是非常复杂,所以我们不认为我们可以告诉他们使用"兼容模式"按钮.相反,我们将添加"IE = EmulateIE7"元标记作为临时修复.

问题是,当使用此标记时,浏览器仍会将自身报告为IE8,然后由我们的页面检测并拒绝.我可以理解为什么服务器端检测无法获取元标记(服务器在发送和处理元标记之前已经拥有用户代理),但客户端检查也会失败.如果在客户端计算机上单击兼容模式按钮,则用户代理是IE7,但如果我们使用元标记则不行.

这意味着,除其他外,我们必须禁用检查,然后,如果我们在某处犯了一个错误并忘记将元标记添加到页面,我们将会破坏页面.

有没有其他人遇到过这种情况并想出更好的方法?当元标记设置模式时,是否无法检测IE8是否在兼容模式下运行?

而且,我们知道有一个有效的思想流派,我们应该让所有页面都与IE8标准模式兼容,但在我们现实的小角落里,现在这不是一个可行的选择(我会指出我们没有创建必须以非标准方式编写的4或5个IE版本).

backwards-compatibility internet-explorer-8 ie8-compatibility-mode

27
推荐指数
4
解决办法
4万
查看次数

为什么IE无法显示UTF-8编码的文本?

我有一些汉字,我试图在Kentico驱动的网站上显示.此文本被复制/粘贴到Kenticos FCK编辑器中,然后保存并显示在网站上.在Firefox,Chrome和Safari中,字符完全按预期显示.在IE 8标准模式中,我只看到框.

文本是UTF-8编码的,据我所知,它在服务器的响应中被正确编码.页面上还有一个Content-Type: text/html; charset=utf-8响应标头和一个<meta http-equiv="content-type" content="text/html; charset=UTF-8" />元标记.当我从服务器下载HTML并将相关字符的字节与原始UTF-8文本文档进行比较时,所有字节都匹配,但HTML不包含BOM.

这似乎是标准模式下IE 8特有的.在IE 8 Quriks:它的工作原理.IE 7标准:它的工作原理.IE 7怪癖:工作.我不确定标准模式会如何导致这个问题.

奇怪的是,如果我从IE查看源代码,则字符会在源视图中正确显示.

关于这里可能有什么问题的任何建议?我错过了一些明显的东西吗

unicode internet-explorer character-encoding ie8-compatibility-mode

27
推荐指数
2
解决办法
7万
查看次数

如何使Internet Explorer 8支持第n个child()CSS元素?

我想给我的表行提供斑马条纹效果.在所有其他浏览器中,可以使用CSS第n个子元素完成.但我也想做IE 8.那怎么办呢?

css compatibility css-selectors internet-explorer-8 ie8-compatibility-mode

24
推荐指数
3
解决办法
7万
查看次数

强制IE9进入Quirks模式?

我有一个网页的iframe和iframe中包含需要在怪癖模式下运行的代码(这是微软的Outlook Web Access的,所以它不是我们的代码,我们可以解决反正).IE9引入了一个"功能",当父框架处于IE9文档模式时,它还强制任何iframe进入相同的文档模式.这打破了我们拥有iframe的代码.

我希望这是IE9中的一个错误,但是我的票被拒绝为"按设计"(如果你想看,这里是票)

我无法以怪癖模式运行整个网站,但我只需要在此页面上进行操作.有没有办法以编程方式打开怪癖模式渲染?无论是那种,还是模仿按下"兼容性视图"按钮的方式 - 按下这几乎可以将IE9变成IE8,这也很好用.

可以做这些事情中的任何一个吗?

compatibility internet-explorer quirks-mode ie8-compatibility-mode internet-explorer-9

19
推荐指数
2
解决办法
3万
查看次数