2008-11-06 117 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" /> 

,我现在已经不是问题。