2010-01-11 44 views
0

當我打開my project時,只顯示背景和圖像未找到項目,而頁面爲100%xhtml 1.1 strict。開發人員工具顯示IE停止在SVG徽標之後進行渲染...... Firefox正常工作。該死的你IE!IE8無法完整顯示頁面

回答

1

請勿嘗試自動關閉「對象」標記。

<object data="/images/Logo_header.svg" type="image/svg+xml"></object> 

代替

<object data="/images/Logo_header.svg" type="image/svg+xml" /> 

不知道這是一個錯誤,雖然,或FF恢復正常。如果您還將頁面作爲XML提供服務,那麼它就是唯一有效的XML,而不是。你使用'text/html'而不是'application/xhtml + xml'。

+2

FF沒有恢復正常:網站上有一個Accept-Header-sniffer,與「application/xhtml + xml」代替'text/html'提供相同的文件,允許Firefox使用真實理解自閉標籤的XML解析器。 – bobince 2010-01-11 15:13:31

+0

這是正確的:我已經檢測到的地方,應該找出基於頭應該發送它應該作爲application/xhtml + xml發送。 Firefox得到這樣的服務。我會研究它 – 2010-01-11 18:09:29

1

Kamiel是對的:你不能在IE上使用XML自動關閉標籤。在任何情況下,由於IE無法渲染SVG,因此無論如何都需要在對象內包含一些後備內容,例如圖像。

我會建議您目前使用的sniff-and-serve-XHTML-as-XML或HTML方法。它沒有好處;你將只會得到這樣的奇怪的兼容性問題,因爲你的文檔是用不同的解析,樣式和DOM上下文處理的。更重要的是,當你這樣做時,你必須在響應中使用Vary: Accept標題,這使IE在緩存中的效率低得多。在任何情況下,W3 specifically don't allow XHTML-as-text/html用於XHTML 1.1文檔。

要麼全力以赴,只提供XHTML 1.1(犧牲IE兼容性),要麼堅持爲所有來者提供文本/ html格式的XHTML 1.0嚴格內容,觀察compatibility guidelines

+0

感謝這個答案,它真的很有啓發性。 但我仍然保持這種功能,否則IE會完全乾擾。無論如何,我的目標都是Firefox觀衆,如果IE至少顯示一點,那就太好了。 – 2010-01-11 18:16:32