Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php IE6中的空白页_Php_Internet Explorer_Http_Internet Explorer 6_Http Headers - Fatal编程技术网

Php IE6中的空白页

Php IE6中的空白页,php,internet-explorer,http,internet-explorer-6,http-headers,Php,Internet Explorer,Http,Internet Explorer 6,Http Headers,我正在使用PHP构建的站点有时会显示一个完全空白的页面。 客户端或服务器上没有错误消息。 同一页面有时可能会显示,但其他页面可能不会显示。 在IE7、Firefox3、Safari和Opera中,所有页面都工作正常。 所有页面都是带有此元元素的XHTML: <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> 我曾读到,这个问题可能是由XHTML、编码、gzip压缩或缓存引

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

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
我曾读到,这个问题可能是由XHTML、编码、gzip压缩或缓存引起的,但没有人能够证实这些猜测

由于问题是间歇性的,我不相信我的解决方案确实解决了问题

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

不确定这是否与您的经验完全相符。这取决于正在使用哪个特定版本的IE(包括service Pack)

IE6 SP2和IE7的一个已知呈现问题(都使用相同的呈现引擎)是HTML中存在孤立标记。这可能是孤立的div或script标记

<script language="javascript">    // no closing tag
alert('hello world');
<body>
hello world
</body>
//没有结束标记
警报(“你好世界”);
你好,世界
上述内容在IE6SP1和Firefox中呈现得很好,但在IE6SP2和IE7中只能看到一个空白页面

某些其他标记必须有单独的结束标记。检查任何
标记是否有一个结尾
标记,而不仅仅是在开始标记的末尾有一个结束斜杠。另一个是
。你必须有两个标签


如果您可以查看空白页面的源代码并获取源html,即使您的页面是空白的,您也可以测试您的站点是否出现这种情况。这是IE的内容类型问题。 它不知道如何处理application/xhtml+xml

虽然您编写了xhtml+xml,但IE只知道文本+html。 在所有代理都知道xhtml+xml之前,这将是未来

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

听起来像IE中的bug,这是众所周知的导致空白页面的缺陷

由于IE的缺陷,您可以永远编写以下代码,并期望它在IE中工作

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

(如果标签是自动关闭的,那么你将陷入痛苦的世界)

相反,始终按照以下方式编写代码:

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


您应该向IE用户提供内容类型标题为text/html的页面。您不需要更改meta标记,只需将其保留为application/xhtml+xml(IE将忽略它).

我有一个类似的问题,是语言特定的-只有带有多字节字符的页面没有显示在IE6和IE7中。事实证明,在这两种浏览器中,内容类型元标记和标题标记的顺序非常重要。因此放置标记(包含日语字符)在元标记修复问题后。

由于键入错误,我得到了这个错误

我写了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" />


我现在没有问题。

谢谢你,这很有趣,我会测试它。在这种情况下,View Source甚至没有打开记事本。我想我应该使用数据包嗅探器来检查实际传输的数据。好主意。用完全空白的页面来诊断问题有点困难,不是吗?这让我觉得很合适n IE6 SP2出现了,我有一些页面是空的,命名为div的,是自动关闭的。让我们知道你发现了什么。如果我把它改成text/html,我还可以使用XHTML吗?你肯定可以在IE中使用XHTML,但正如我指出的,有一些怪癖。我在.Net中专门编写XHTML已经很多年了。是的,你可以,但它将作为html发送。至少您可以进行验证以确保您拥有有效的xhtml。
另请参见:另一个注意事项:xhtml=html,但对于xmlYes结构,任何关于内容类型和字符集的标记都只使用基本ASCII集中的字符,因为它们在许多不同的编码中具有相同的字节值。如果标题标记出现在内容类型之前,浏览器可能无法重新显示广告内容类型正确。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />