使用条件确定是否处于 IE8 兼容模式
我从我的研究中了解到,IE8 做了一些烦人的事情,比如强制本地 Intranet 主机和本地 IP 范围进入 IE7 模式。我从上一个问题中了解到,无论如何,都无法使用条件语句无论 IE8 是在 IE8 还是 IE7 模式下渲染,它仍然只会使用
由于这个问题是不久前提出的(在 IE8 测试阶段),我想知道这是否已经改变,或者是否有其他方法使用条件来确定 IE8 是否兼容模式。
谢谢!
I understand from my research that IE8 does annoying things like forcing itself into IE7 mode for local intranet hosts and local IP ranges. I understand from a previous question that there is no way to use conditional statements as, irrespective of whether IE8 is rendering in IE8 or IE7 mode, it will still only use the <!--[if IE 8]>
conditional.
Since this question was asked a while ago (during the IE8 beta phase by the looks of things) I am wondering if this has changed or if there is any other way using conditionals to determine if IE8 is in compatibility mode.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,您不能使用条件来做到这一点。
最好的方法是使用 document.documentMode 属性,如 Pekka 发布的链接中所述。 如何检测 IE8 是否以兼容性运行查看?
No, you can't do it using conditionals.
The best way to do it is to use the document.documentMode property as described in the link Pekka posted. How can I detect if IE8 is running in compatibility view?
http:// /msmvps.com/blogs/paulomorgado/archive/2010/04/05/defining-document-compatibility-in-internet-explorer-8.aspx
http://msmvps.com/blogs/paulomorgado/archive/2010/04/05/defining-document-compatibility-in-internet-explorer-8.aspx
最终,我选择混合使用两种常见的策略来处理这个bug。
我创建了一个覆盖 CSS 文件,并使用条件注释导入该文件。不过,在 IE 8 或 9 中,此覆盖看起来不太好,因此我添加了“强制 IE 进入最新渲染模式”标头开关,如下所示。
这为 IE7 提供了不错的故障保护,但强制 IE8 和 IE9 在最新的浏览器中显示它,这将正确显示基于 CSS 的表格。
In the end, I chose to mix the two common strategies to deal with this bug.
I created an override CSS file, which I import using conditional comments. In the event of IE 8 or 9, though, this override doesn't look as good, so I include the 'force IE into latest rendering mode' header switch, as shown below.
This provides IE7 with a decent failsafe, but forces IE8 and IE9 to show it in the latest browser, which will show the CSS-based table correctly.