Internet explorer 8 IE8被迫进入兼容模式

Internet explorer 8 IE8被迫进入兼容模式,internet-explorer-8,cross-browser,Internet Explorer 8,Cross Browser,我的团队正在开发一个用户界面非常复杂的网站;jQuery、ASP.NETAjax等。当然,我希望我的网站能够与所有现代浏览器兼容。有时候,在网站开发过程中的测试或一般使用中,IE8告诉我该页面无法在标准模式下工作,并且正在切换到兼容模式,但它从未告诉我原因。在IE8中是否有一些日志、报告、设置或其他东西,我可以用来找出是什么破坏了IE8标准模式?在FF、Chrome、Safari和IE7中,一切似乎都很好,那么IE8不喜欢的是什么?我怎么能找到呢?可能不是一个实际的答案,但FWIW如果它对交付的

我的团队正在开发一个用户界面非常复杂的网站;jQuery、ASP.NETAjax等。当然,我希望我的网站能够与所有现代浏览器兼容。有时候,在网站开发过程中的测试或一般使用中,IE8告诉我该页面无法在标准模式下工作,并且正在切换到兼容模式,但它从未告诉我原因。在IE8中是否有一些日志、报告、设置或其他东西,我可以用来找出是什么破坏了IE8标准模式?在FF、Chrome、Safari和IE7中,一切似乎都很好,那么IE8不喜欢的是什么?我怎么能找到呢?

可能不是一个实际的答案,但FWIW如果它对交付的页面表示不满(例如,在使用DOM操作页面之前),如果你把同一页浏览一遍,你应该能够发现它在抱怨什么。当然,验证器检查的是验证器对标准的解释(这很好,但可能并不完美),而不是微软对标准的解释(无评论),因此,这两种样式可能并不总是一致的…

请检查,看看它们是否知道明显的原因。

问题与IE8布局引擎无法解释的所使用的样式有关。不幸的是,目前还没有触发这种行为的样式组合的全面列表。您可以通过进入“工具->Internet选项->高级选项卡->浏览->并取消选中“从布局错误自动恢复…”来关闭自己机器上的自动恢复功能

当然,这只适用于您的机器,如果触发布局错误,对您的客户没有任何好处。我对您的具体问题没有答案,但我建议使用W3C css验证程序验证您的css:


任何人都可以尝试一次删除一个复杂的样式,直到找到触发站点错误的组合。

我想有几个问题可能会导致IE8更改为兼容模式,但我在我的站点中发现的样式在body标记上使用了伪元素。删除此样式会自动停止IE8切换到兼容模式

删除此项:

body:after {
    // This causes IE8 to freak out and change into Compatibility Mode!
}

+1用于尽最大努力实现标准,而不仅仅是让IE做你想做的事情。确切的错误消息是什么?有几种情况下,这种情况会因为不同的原因发生……最糟糕的是IE8渲染器崩溃(!)它决定在IE7中再试一次;在这种情况下调试IE是困难的。原来问题来自于我公司使用的病毒扫描程序:Sophos。BHO与IE8存在一些冲突,导致IE退回到IE7模式。我们在Sophos论坛中发现一些帖子没有提供太多帮助。我们禁用了BHO和每个thing现在很酷。