2

我正在使用 PHP 构建的网站有时会显示一个完全空白的页面。客户端或服务器上没有错误消息。有时可能会显示同一页面,但有时不会显示。所有页面在 IE7、Firefox 3、Safari 和 Opera 中运行良好。所有页面都是带有此元元素的 XHTML:

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

看来我已经通过添加这个 PHP 代码解决了这个问题

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

我读过这个问题可能是由 XHTML、编码、gzip 压缩或缓存引起的,但没有人能够备份这些猜测。

由于问题是间歇性的,我不确定我的解决方案是否真的解决了问题。

我的问题是,当其他浏览器显示内容时,是否有可重现的方式让 IE6 显示空白页面?如果是这样,是什么原因造成的,什么解决了它?

4

6 回答 6

3

这是来自 IE 的内容类型问题。它不知道如何处理 application/xhtml+xml。

虽然你写的是xhtml+xml,但是IE只知道text+html。在所有代理都知道 xhtml+xml 之前将是未来

将内容类型的元标记更改为 content="text/html;

于 2008-11-06T12:52:38.930 回答
1

听起来像是IE 中的bug #153“自关闭脚本标记”错误,众所周知,它会导致空白页

由于 IE 的错误,您永远不能编写以下代码并期望它在 IE 中工作。

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

(如果标签是自动关闭的,您将进入一个痛苦的世界)

相反,始终编码为;

<script src="...."></script>
于 2008-11-06T13:30:08.557 回答
1

我有一个类似的特定于语言的问题——只有多字节字符的页面没有在 IE6 和 IE7 中显示。结果在这两个浏览器中,Content-Type 元标记和标题标记的顺序很重要。因此,将标签(包含日文字符)放在元标签之后可以解决问题。

于 2009-10-07T10:10:40.113 回答
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>and<script>标记是否有结尾</script><div>标记,而不仅仅是开始标记末尾的右斜杠。另一个是<textarea>. 你必须有两个标签。

如果您可以查看空白页面的源代码并获取源 html,即使您的页面是空白的,您也可以测试您的网站是否发生这种情况。

于 2008-11-06T12:50:16.580 回答
0

您应该将带有 Content-Type 标头的页面作为 text/html 提供给 IE 用户。您不需要更改元标记,只需将其保留为 application/xhtml+xml(IE 将忽略它)。

于 2008-11-07T22:57:05.513 回答
0

由于打字错误,我得到了这个错误。

我写了元标记:

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

感谢您,我将其更正为:

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

我现在没有问题。

于 2009-11-13T13:59:55.370 回答