0

我这个周末为我的一个客户推出了一个网站。它在 Firefox、Chrome、Opera、Safari 和 IE 9 中看起来不错。

但是,IE 7 和 8(也可能是 6)给我带来了真正的问题。主页很好,但辅助页面有不同的主题布局。

我编辑了 21 个 Wordpress 主题。我有一台 Mac,所以我很难测试 IE,因为它是一个 Windows 浏览器。我有一台装有 IE 8 的 XP 笔记本电脑。这就是我知道它搞砸了。二级页面真的很糟糕。

我的主要内容、左侧栏和页脚都未对齐。我已经尝试了几件事来尝试解决问题。我研究了黑客并尝试了它们,但无济于事。

我尝试更改图像的位置,但它只是让页面看起来比现在更糟。我真的很难过。

如果有人可以请帮助或引导我朝着正确的方向前进,我们将不胜感激。网址是www.jubileecf.com。谢谢~阿什~

4

1 回答 1

1

该问题在您的代码中可见:

<script>(function fix_ie8() {if (strpos($_SERVER['HTTP_USER_AGENT'],”MSIE 8″)) {header(”X-UA-Compatible: IE=7″);}}

add_action('send_headers','fix_ie8'))();

这在几个方面都是错误的。

  • 首先,它使用了错误的引号字符。

  • 其次,你有试图成为 Javascript 的 PHP 代码。

  • 第三,即使你把它改回PHP,你仍然需要移动它,因为header()只能在页面的任何部分输出之前调用。所以它需要在你开始之前完成,而不是在标题的中间。

  • 最后,这严重破坏网站的原因是因为它导致 Javascript 解释器看到错误并停止处理。因此,您包含的文件中的 IE 修复程序html5.js不会运行,因此您的页面布局将被破坏。

简而言之,这行代码需要被锁定并且永远不会再被提及。

因此,让我们分解这里发生的事情并尝试找到解决方案......

该代码试图使用X-UA-Compatible标头强制 IE8 进入 IE7 兼容模式。我要说的是,既然您说您甚至从未在 IE 中进行过测试,那么您为什么认为无论如何都需要使用 IE7 兼容模式?

为什么不直接尝试不使用那行代码,看看会发生什么?如果您在 IE8 中确实有一些小的布局故障,最好修复它们而不是使用兼容模式。

如果您必须使用 IE7 兼容模式,那么您可以使用它,而根本不需要任何类型的脚本。只需使用元标记:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

这就是你所需要的。

如果您希望标签只影响 IE8(即不影响 IE9),那么您可以将它包装在 IE 条件注释中(您已经在页面的其他地方使用了它)。

于 2012-05-14T21:30:18.750 回答