2008-11-06 175 views
2

我正在使用的一個站點是使用PHP構建的,有時會顯示一個完全空白的頁面。 客戶端或服務器上沒有錯誤消息。 同一頁面有時可能會顯示,但不會顯示其他頁面。 所有頁面在IE7,Firefox 3,Safari和Opera中均可正常工作。 所有頁面均XHTML與此meta元素:IE6中的空白頁面

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> 

似乎,我已經解決了這一問題,通過添加此PHP代碼:

header('Content-type: text/html; charset=utf-8'); 

我已閱讀,這個問題的原因可能XHTML,編碼,gzip壓縮或緩存,但沒有人能夠備份這些猜測。

由於問題是斷斷續續的,我不相信,我的解決方案實際上已經解決了這個問題。

我的問題是,有沒有可重現其他瀏覽器顯示內容時有IE6顯示空白頁的方式? 如果是這樣,是什麼原因導致它解決的?

回答

3

這是從IE的內容類型的問題。 它不知道如何處理application/xhtml + xml。

雖然你寫xhtml + xml,IE只知道文本+ HTML。 這將是未來在所有代理知道xhtml + xml

改變你的內容類型內容的元標記=「text/html的;

+0

如果我將其更改爲text/html,我仍然可以使用XHTML嗎? – Liam 2008-11-06 13:02:17

0

不知道這是否你的經驗完全匹配。這取決於正在使用哪個特定版本的IE(包括服務包)。

IE6 SP2的已知渲染問題IE7(都使用相同的渲染引擎)是HTML中存在孤立標籤。這可能是孤立的div或腳本標記。

<script language="javascript"> // no closing tag 
alert('hello world'); 
<body> 
hello world 
</body> 

以上呈現在IE6 SP1和Firefox就好了,但是你只能看到在IE6 SP2 IE7 &一個空白頁。

有跡象表明,必須有一個獨立的結束標記某些其他標籤。檢查任何<div><script>標籤有一個結束</script><div>標籤,而不是僅僅在開放標籤的結尾結束斜槓。另一個是<textarea>。你必須有兩個標籤。

如果您可以查看您的網站是否發生這種情況,即使您的網頁爲空,也可以查看您的空白頁的源代碼並獲取源html。

+0

謝謝你,這很有趣,我會測試它。在這種情況下,查看源文件甚至沒有打開記事本。我想我應該使用數據包嗅探器來檢查實際正在傳輸的數據。 – Liam 2008-11-06 12:56:31

+0

好主意。試圖用完全空白的頁面來診斷問題有點難,不是嗎?當IE6 SP2出來時,這讓我感覺很適合,而且我的頁面上有空的,名爲div的頁面,它們是自動關閉的。讓我們知道你發現什麼。 – DOK 2008-11-06 13:02:02

1

聽起來bug #153 "Self Closing Script Tag"漏洞在IE中,這是衆所周知的原因由於IE瀏覽器的bug。空白頁

,你可以NEVER以下代碼並期望它在IE瀏覽器。

<script src="...." /> 

(如果標籤是自閉,你是在痛苦的世界)

相反,總是代碼;

<script src="...."></script> 
0

您應該將帶有Content-Type標頭的頁面作爲text/html提供給IE用戶。您不需要更改元標記,只需將其保留爲application/xhtml + xml(IE將忽略它)。

1

我有一個類似的問題,語言特定 - 只有多字節字符的頁面沒有顯示在IE6和IE7中。在這兩個瀏覽器中發現,內容類型元標記和標題標記的順序是很重要的。因此,在元標記之後放置標籤(包含日文字符)解決了問題。

0

我得到了這個錯誤,由於輸入錯誤。

我寫的meta標籤:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> 

多虧了你,我也更正爲:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 

,我現在已經不是問題。