internet-explorer-8 - 检测IE8兼容模式

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

Possible Duplicate:
Differentiate IE7 browser and browser in IE7 compatibility mode

我们还没有时间用我们相当广泛的系统来全面测试 IE8。我们也已经到了无法禁止使用 IE8 的地步。我们的用户很固执,也不是很老练,所以我们觉得我们不能告诉他们使用“兼容模式”按钮。相反,我们将添加“IE=EmulateIE7”元标记作为临时修复。

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

这意味着,除其他外,我们必须禁用检查,然后,如果我们在某个地方犯了错误并且忘记将元标记添加到页面,我们就会出现损坏的页面。

还有其他人遇到过这种情况并提出更好的方法吗?当meta标签设置模式时,有没有办法检测到IE8是否运行在兼容模式下?

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

最佳答案

IE8 在用户代理字符串中包含一个 trident token ,无论兼容模式如何。

有关更多详细信息,请参阅 MSDN:The Internet Explorer 8 User-Agent String (Updated Edition)

Windows Vista 上的 IE7
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.0)

Windows Vista 上的 IE8(兼容性 View )
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.0;Trident/4.0)

Windows Vista 上的 IE8
Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.0;Trident/4.0)

关于internet-explorer-8 - 检测IE8兼容模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328963/

相关文章:

android - 替换 fragment 和方向更改

internet-explorer - X-UA-Compatible设置为IE=edge,但仍然没有停止兼容模式

jQuery:日期选择器开始在对话框中打开,仅在 IE 中

internet-explorer - CSS 背景大小在 IE7/8 中不起作用

c++ - 各种版本的 Mac OSX 的向后兼容性如何? (Xcode C++

c++ - boost log non-const bitfield 编译错误(向后兼容问题)

java - 以编程方式禁用在 Intranet 中运行并呈现 .xhtml 页面的站点的 IE-8 兼容模式

internet-explorer-8 - 第 : 6 Char: 28214 行中 IE9.js(代码 0)中的无效参数

javascript - Json 到 CSV 下载在 chrome 中工作但在 IE 浏览器中不起作用

internet-explorer - 在 CSS 中为 BPM Coach 设置按钮控件的最小宽度。按钮宽度也应该扩展 wrt 文本大小