【发布时间】:2010-11-22 16:08:39
【问题描述】:
可能重复:
Differentiate IE7 browser and browser in IE7 compatibility mode
我们还没有时间用我们相当广泛的系统全面测试 IE8。我们也达到了不能禁止使用 IE8 的地步。我们的用户很固执,也不是很老练,所以我们觉得我们不能告诉他们使用“兼容模式”按钮。相反,我们将添加“IE=EmulateIE7”元标记作为临时修复。
问题是,当使用这个标签时,浏览器仍然报告自己是IE8,然后被我们的页面检测到并拒绝。我可以理解为什么服务器端检测无法获取元标记(在发送和处理元标记之前,服务器已经拥有用户代理),但客户端检查也失败了。如果在客户端计算机上单击兼容模式按钮,则用户代理是 IE7,但如果我们使用元标记,则不是。
这意味着,除其他外,我们必须禁用检查,然后,如果我们在某处出错并忘记将元标记添加到页面,我们将有损坏的页面。
有没有其他人遇到过这种情况并提出了更好的方法?通过meta标签设置模式时,有没有办法检测到IE8是在兼容模式下运行的?
而且,我们确实知道有一个有效的思想流派,我们应该让所有页面与 IE8 标准模式兼容,但在我们现实的小角落里,这不是一个可行的选择(我会指出我们没有创建必须以非标准方式编写的 4 或 5 个版本的 IE)。
【问题讨论】:
-
我知道我是一个后来者,但经过大量测试我强烈推荐这种方法来检测IE文档呈现模式:stackoverflow.com/a/13732003/850782
-
我刚刚向推荐的重复问题添加了一个处理(所有情况?)兼容模式的解决方案。来源:stackoverflow.com/a/29288153/2879498
标签: internet-explorer-8 backwards-compatibility ie8-compatibility-mode