【问题标题】:IE8 compatibility for JSF / Richfaces ApplicationJSF / Richfaces 应用程序的 IE8 兼容性
【发布时间】:2012-04-22 18:38:04
【问题描述】:

我有 JSF / Richfaces 网络应用程序。此应用程序最初是为 IE6 浏览器 设计的。现在我们也必须将它移植到 IE-8。应用服务器是 Weblogic 10.3。我尝试了以下解决方案。

  1. 用于添加标头参数的过滤器,X-UA 兼容。
  2. JSF PhaseListener 添加标头参数,X-UA 兼容。
  3. 在页面头部的第一行添加了 Meta 标签。

以上都不起作用。此外,我无法使用任何自定义标头值。 HttpRequestWrapper 也不能正常工作。

请提出解决方案。我一直希望我可以在 JSF 中使用 scriptlet 或在 JSF 中的任何地方使用逻辑标记。

【问题讨论】:

  • 与 x-ua 兼容的标签应该符合预期;你能告诉我们你是如何使用它的吗?您是否将其设置为 EmulateIE6?
  • 我添加了 作为 head 的第一行。但在渲染的代码中,这出现在 JSF css 和 scriptlet 之后。

标签: jsf internet-explorer-8 richfaces internet-explorer-6 compatibility


【解决方案1】:

IE8 中的X-UA-Compatible 选项只能作为 IE7 兼容性的后备选项。它没有模拟 IE6 的选项。

因此,您所处的情况——拥有一个为 IE6 编写但在 IE8 中无法运行的 Intranet 应用程序——是公司长期坚持使用 IE6 的主要原因之一:它可以很难升级。

当然,理想的解决方案是更新您网站中的代码,使其能够在 IE8(或者更好的是 IE9)中运行。这可能是一个漫长而昂贵的过程,但没有官方的捷径解决方案。

如果您无法更新您的网站,您将不得不坚持使用 IE6。但是有一些解决方案可能会减轻这种痛苦。

显而易见的快速修复方法是将您的主要平台升级到 IE8 或 IE9,但继续运行 IE6,保留在虚拟机中,并将其仅用于需要它的特定站点。还有IETester的超便宜选项,它是一个可以在同一台机器上运行多个版本的IE(包括IE6)的应用程序。然而,众所周知,IETester 经常崩溃,因此可能不是一个理想的解决方案。它适用于在各种 IE 版本中测试网站,但不适用于实际完成有用的工作。

这些充其量只是权宜之计,但可以让您继续运行,同时允许您升级其余的基础架构。

Browsium 的形式可能会提供更可靠的答案。这是由一些前微软工程师推出的产品,旨在帮助旧的 IE6 特定站点在新版本的 Explorer 中工作。 See also this article 了解他们可以做什么的一个很好的真实示例。

从长远来看,您最终将不得不更新您的网站; IE6 不能永远持续下去,即使是像 Browsium 这样的解决方案。但是这些解决方案可以让您避免在短期内做出改变。

如果您现在进行升级,我强烈建议您跳过 IE8 并尽可能直接升级到 IE9。 IE8 已经过时,并且在其支持结束时会导致与 IE6 类似的升级问题(尽管可能没有那么糟糕)。

【讨论】:

  • 感谢您的回复!! 1. 恐怕我们必须迁移到 IE8 并保持与 IE6 的向后兼容性。跳过 IE8 并迁移到 IE9 是不可能的。 2. 此元标记在基于 Struts 的应用程序中正常工作,但在 JSF/Richfaces 中不能正常工作。感谢脚本/逻辑标签,我可以轻松解决特定问题。
  • 你好@SKR不需要在xhtml中添加meta标签只要看看我上面的答案就可以解决所有问题
【解决方案2】:

对于在 IE 8 9 中隐藏 CompitibilityView 按钮,在 Jsf 中您只需将此代码放入 PhaseListner 实现的类中

@Override public void beforePhase(PhaseEvent event) { response.addHeader("X-UA-Compatible", "IE=edge"); } 只需在已实现的 PhaseListner 类中添加这一行

【讨论】:

  • 感谢 Jigar Patel。我会尽快回复的。
  • @Jigar:你的大写锁定挂起,现在看起来你像个烦人的小孩一样尖叫。这是不专业的。我建议删除评论并在关闭大写锁定的情况下仔细重新输入。顺便说一句,如果 OP 尚未确认答案是否实际上有助于解决问题,并且如果 OP 已经,那么对复选标记唠叨是相对粗鲁的熟悉系统的工作原理。
猜你喜欢
  • 2013-06-16
  • 2017-04-30
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多