2009-10-01 100 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! 
}