Tag: ie8 compatibility mode

在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。 这里我不是在说“文件模式”。

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

在一个域控制的环境中,我发现即使我们提供了X-UA标签,!DOCTYPE定义和“IE = Edge”响应,某些客户端(winXP / Win7,IE8 / IE9)也会触发兼容模式头。 这些客户端在“兼容性视图中显示Intranet站点”checkbox打勾。 这正是我想要重写的。 以下是我用来尝试了解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 网站所有者总是在控制其内容。 网站所有者可以select使用X-UA兼容标签来绝对声明他们希望自己的网站显示的内容,并将标准模式页面映射到IE7标准。 使用X-UA兼容标签将覆盖客户端上的兼容性视图。 谷歌的“定义文档兼容性” ,不幸的是垃圾邮件引擎不让我发布超过2个url。 这是一个ASP .NET Web应用程序,在主页上包含以下定义: <!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站点”浏览器设置。 但是根据客户端的不同,我发现其中的一些仍然会触发兼容模式。 这也似乎是机器级别而不是策略组设置,因为即使在不同的客户机上使用相同的凭据集时,我也会得到不同的结果。 禁用“兼容性视图设置”checkbox可以做到这一点。 但实际目的是确保应用程序呈现完全相同的方式,无论客户端设置。 任何想法和我可能会失踪? 是否有可能迫使IE浏览器总是呈现页面而不触发“同步”模式? […]

JavaScript:如果IE7或IE8兼容模式,我可以检测IE9吗?

我需要知道如果浏览器通过用户代理string标识为IE7或IE8真的是那些浏览器,或者是否在IE9在7或8兼容模式。 从我在用户代理string中可以看到的一个在IE7兼容模式下的IE9,为真实的IE7提供了一个相同的string。 是否有一个额外的属性/元素/对象,我可以testing,看看它是真的“真的”变相的IE9? 我假设文档模式将无法帮助,因为我的脚本加载到的页面可能是强迫怪异或强制一个特定的设置。 我希望IE9将有一些存在的属性,可testing,无论是在7,8或9模式。 编辑添加… 好的,我明白我现在要去哪里了。 我正在使用“浏览器模式”下拉菜单,并将其切换到IE8和IE7,并认为这是“IE8兼容模式”和“IE7兼容模式”分别。 这当然是不正确的。 开发人员工具的浏览器模式确实是将其切换为“像”那些旧的浏览器,所以只报告原始的useragentstring。 如果我将浏览器模式保留在IE9或IE9兼容性下,并尝试使用文档模式下拉变体,那么我确实会在所有8种组合(两种浏览器模式和4种文档模式)下都显示“Trident / 5.0”。 我只需要避开select浏览器模式IE7和IE8,因为他们真的是(模拟)IE7和IE8。 因此,页面,非开发人员用户,元标记或Microsoft的兼容性列表将无法将IE9置于无法识别的状态。 只要使用if(navigator.userAgent.indexOf("Trident/5")>-1)就足够了。 不要担心,这不适用于样式,格式,逻辑或页面内容。 我使用function检测这些东西。 我只需要检测IE9(不pipe它在哪个模式),并做出一个非页面内容的决定。 感谢您的build议和链接指导我的答案。