【问题标题】:Blank page in IE6IE6中的空白页
【发布时间】:2023-03-16 02:25:01
【问题描述】:

我正在使用 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 显示空白页面? 如果有,是什么原因造成的,有什么解决办法?

【问题讨论】:

    标签: php internet-explorer http internet-explorer-6 http-headers


    【解决方案1】:

    不确定这是否完全符合您的体验。这取决于正在使用哪个特定版本的 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 中您只会看到一个空白页面。

    有些其他标签必须有单独的结束标签。检查任何&lt;div&gt;&lt;script&gt; 标记是否有结尾&lt;/script&gt;&lt;div&gt; 标记,而不仅仅是开始标记末尾的右斜杠。另一个是&lt;textarea&gt;。你必须有两个标签。

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

    【讨论】:

    • 谢谢,这很有趣,我会测试一下。在这种情况下,查看源代码甚至没有打开记事本。我想我应该使用数据包嗅探器来检查实际传输的数据。
    • 好主意。尝试用完全空白的页面诊断问题有点困难,不是吗?当 IE6 SP2 出现时,这让我很适应,我的页面是空的,名为 div 的页面会自动关闭。让我们知道您的发现。
    【解决方案2】:

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

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

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

    【讨论】:

    • 如果我把它改成 text/html,我还能用 XHTML 吗?
    • 您绝对可以在 IE 中使用 XHTML,但正如我所指出的,有一些怪癖。多年来,我一直在 .Net 中专门编写 XHTML。
    • 是的,您可以,但它将作为 html 发送。至少您可以验证以确保您拥有有效的 xhtml。
      另请参阅:h3h.net/2005/12/xhtml-harmful-to-feelings
    • 另注:xhtml=html,但采用xml的结构
    【解决方案3】:

    听起来像是 IE 中的 bug #153 "Self Closing Script Tag" 错误,众所周知会导致空白页

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

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

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

    相反,始终编码为;

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 是的,任何关于内容类型和字符集的标签都只使用基本 ASCII 集中的字符,因为它们在许多不同的编码中具有相同的字节值。如果标题标签出现在内容类型之前,浏览器可能无法正确读取内容类型。
        【解决方案6】:

        由于输入错误,我遇到了这个错误。

        我写了元标记:

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

        感谢您,我将其更正为:

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

        我现在没有问题。

        【讨论】:

          猜你喜欢
          • 2010-12-15
          • 2016-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多