IE8兼容JSF / Richfaces应用程序

时间:2012-04-10 13:00:48

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

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

  1. 用于添加Header参数,X-UA兼容的过滤器。
  2. JSF PhaseListener添加标头参数,X-UA-Compatible。
  3. 在页面的第一行头部添加了元标记。
  4. 以上都不奏效。此外,我无法使用任何自定义标头值。 HttpRequestWrapper也不起作用。

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

2 个答案:

答案 0 :(得分:0)

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

正因为如此,你所处的情况 - 拥有一个为IE6编写并且在IE8中不起作用的内部网应用程序 - 是公司长期坚持使用IE6的主要原因之一:它可以很难升级。

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

如果您无法更新您的网站,则必须坚持使用IE6。但是有一些解决方案可能会减少痛苦。

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

这些措施充其量只是一种止损措施,但会让您保持运行,同时允许您升级其余的基础设施。

稍微更健全的答案可能会以Browsium的形式出现。这是一些前Microsoft工程师推出的产品,旨在帮助旧的IE6特定站点在较新版本的Explorer中工作。 See also this article了解他们可以做些什么的真实世界的例子。

从长远来看,您最终必须更新您的网站;即使使用像Browsium这样的解决方案,IE6也无法永远存在。但是这些解决方案将使您不必在短期内做出改变。

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

答案 1 :(得分:0)

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

@Override public void beforePhase(PhaseEvent event) { response.addHeader("X-UA-Compatible", "IE=edge"); }    只需在Implemented PhaseListner类

中添加此行