2009-10-01 106 views
8

我的团队正在开发一个网站,其UI非常复杂; jQuery,ASP.Net AJAX等。当然,我希望我的网站与所有现代浏览器兼容。有时候,IE8在开发过程中对网站进行测试或一般性使用时,告诉我该网页在标准模式下无法使用,并且正在切换到兼容模式,但它永远不会告诉我为什么。是否有一些日志或报告或设置或在IE8中,我可以用来找出什么让IE8标准模式困扰?在FF,Chrome,Safari和IE7中,一切似乎都能正常工作,那么IE8不喜欢什么?我怎么能找到它?IE8被迫兼容模式

+5

+1尝试你最好向标准工作,而不是只是让IE做你想做什么。 – 2009-10-01 15:32:20

+0

什么是确切的错误信息?有几种情况发生这种情况的原因不同......最糟糕的情况是IE8渲染器崩溃(!),并决定在IE7中再次尝试;在这种情况下调试IE很困难。 – bobince 2009-10-01 15:35:33

+2

发现问题来自我公司使用的病毒扫描程序:Sophos。 BHO与IE8有一些冲突,导致IE回退到IE7模式。我们在Sophos论坛中发现了一些没有提供太多帮助的帖子。我们禁用了BHO,现在每件事情都很酷。 – Matthew 2009-10-28 13:27:54

回答

1

可能不是一个真正的答案,但是FWIW如果它抱怨页面已交付(例如,在您使用DOM操作之前),您应该能够找出它在抱怨的内容,如果您通过同一页面W3C validator。当然,反对的标准验证的解释验证检查(这虽然可能不是完美的很好),而不是微软解释的标准(无可奉告),因此两者并不总是一致...

2

该问题与您使用哪种IE8布局引擎无法解释的样式有关。不幸的是,没有全面的风格组合列表会触发这种行为。您可以通过转至'工具 - > Internet选项 - >高级选项卡 - >浏览 - >并取消选中'自动恢复布局错误...'来关闭自己机器上的自动恢复功能。

这是当然只适用于你的机器,如果布局错误被触发,对你的客户没有任何好处。我没有针对你的具体问题的答案,但我建议验证你的CSS对W3C CSS验证器: http://jigsaw.w3.org/css-validator/

任何尝试一次只删除一个复杂样式,直到找到引发网站错误的组合为止

1

我想假设它e有几个问题可能会导致IE8更改为兼容模式,但我在我的网站中找到的样式是在body标签上使用伪元素。从停止的IE8中自动切换到兼容模式。

删除此:

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