Questions tagged «ie8-compatibility-mode»

18
X-UA-Compatible设置为IE = edge,但仍不会停止兼容模式
我很困惑。我应该可以设置 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 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" …

7
JavaScript:是否可以在IE7或IE8兼容模式下检测IE9?
我需要知道通过用户代理字符串标识为IE7或IE8的浏览器是否真的是那些浏览器,或者它是7或8兼容模式下的IE9。 从用户代理字符串中可以看到,处于IE7兼容模式的IE9提供了与真实IE7相同的字符串。我是否可以测试一个额外的属性/元素/对象,以查看它是否真的是“真正的” IE9? 我认为文档模式将无济于事,因为脚本加载到的页面可能是强制古怪或强制进行了特定设置。 我希望IE9可以具有一些存在的属性,并且无论它处于7、8还是9模式都可以测试。 编辑添加... 好的,我知道我现在要去哪里了。我在使用“浏览器模式”下拉列表并将其切换到IE8和IE7,并认为这分别是“ IE8兼容模式”和“ IE7兼容模式”。这当然是不正确的。开发人员工具的“浏览器”模式实际上是将其切换为“类似于”那些旧的浏览器,因此,报告原始用户代理字符串是正确的。 如果我将浏览器模式保留为IE9或IE9兼容性,而尝试使用文档模式下拉变体,则实际上我确实在所有8种组合(两种浏览器模式和4种文档模式)中都出现了“ Trident / 5.0”。我只需要避免选择浏览器模式IE7和IE8,因为它们实际上是(模拟的)IE7和IE8。 因此,页面,非开发人员用户,元标记或Microsoft的兼容性列表将无法使IE9处于这种无法识别的状态。 只需使用if(navigator.userAgent.indexOf("Trident/5")>-1)就足够了。 不用担心,这不适用于样式,格式,逻辑或页面内容。我对那些东西使用特征检测。我只需要检测IE9(无论它处于哪种模式),然后就此做出非页面内容决定即可。 感谢您引导我提出您的建议和链接,以解答您的问题。

4
如何从服务器端强制设置IE的兼容模式?
在域控制的环境中,我发现即使在我们提供X-UA标签,!DOCTYPE定义和“ IE = Edge”响应的情况下,某些客户端(winXP / Win7,IE8 / IE9)也会触发兼容模式标头。这些客户端已选中“在兼容性视图中显示Intranet站点”复选框。这正是我要覆盖的内容。 以下是我用来尝试了解IE如何决定实际触发兼容模式的文档。 http://msdn.microsoft.com/zh-cn/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标记来绝对声明他们希望其网站如何显示以及如何将Standards模式页面映射到IE7 Standard。使用X-UA-Compatible标签会覆盖客户端上的“兼容性视图”。 Google表示“定义文档兼容性”,但不幸的是,SPAM引擎不允许我发布两个以上的网址。 这是一个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> 和 web.config <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=Edge" /> </customHeaders> </httpProtocol> </system.webServer> 我已经使用Fiddler来检查标头确实被正确注入了。 我的理解是,使用这些设置,我应该能够覆盖“在兼容性视图中显示Intranet站点”浏览器设置。但是根据客户端的不同,我发现其中一些仍会触发兼容模式。这似乎还取决于计算机级别,而不是策略组设置,因为即使在不同客户端上使用同一组凭据时,我也会获得不同的结果。 禁用“兼容性视图设置”复选框可以解决问题。但是实际目的是确保无论客户端设置如何,应用程序的渲染方式都完全相同。 有什么想法,我可能会错过什么?是否有可能迫使IE始终呈现页面而不触发Compat模式? 太感谢了, 久美 …

13
在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。我这里不是在谈论“文档模式”。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.