1

JSF /RichfacesWebアプリを持っています。このアプリケーションは、もともとIE6ブラウザを対象としていました。次に、 IE-8にも移植する必要があります。AppServerはWeblogic10.3です。私は以下の解決策を試しました。

  1. ヘッダーパラメータを追加するためのフィルター、X-UA-Compatible。
  2. ヘッダーパラメータを追加するJSFPhaseListener、X-UA-Compatible。
  3. ページの先頭の最初の行にメタタグを追加しました。

上記のいずれも機能しません。また、カスタムヘッダー値を設定できません。HttpRequestWrapperも機能しません。

解決策を提案してください。JSFでスクリプトレットを使用したり、JSFのどこでもロジックタグを使用したりできることを常に望んでいます。

4

2 に答える 2

0

IE8のX-UA-Compatibleオプションは、IE7 との互換性のためのフォールバックとしてのみ機能します。IE6 をエミュレートするオプションはありません。

このため、IE6 用に作成されたイントラネット アプリが IE8 では動作しないという状況が、企業が長い間 IE6 にこだわってきた主な理由の 1 つです。改良する。

もちろん、理想的な解決策は、IE8 (できれば IE9) で動作するようにサイトのコードを更新することです。これは長くて費用のかかるプロセスになる可能性がありますが、公式のショートカット ソリューションはありません。

サイトを更新できない場合は、IE6 を使い続ける必要があります。しかし、その痛みを軽減する解決策がいくつかあります。

明白な応急処置の答えは、メイン プラットフォームを IE8 または IE9 にアップグレードすることですが、引き続き IE6 を実行し、仮想マシンを維持して、それを必要とする特定のサイトにのみ使用します。IETester の超安価なオプションもあります。これは、同じマシン上で複数のバージョンの IE (IE6 を含む) を実行できるアプリです。ただし、IETester は頻繁にクラッシュすることが知られているため、おそらく理想的なソリューションではありません。さまざまな IE バージョンでサイトをテストするには適していますが、実際に有用な作業を行うには適していません。

これらはせいぜいその場しのぎの手段ですが、インフラストラクチャの残りの部分をアップグレードできるようにしながら、稼働を維持できます。

もう少し堅牢な答えは、Browsiumの形で提供される可能性があります。これは、古い IE6 固有のサイトを新しいバージョンの Explorer で動作させることを目的として、一部の元 Microsoft エンジニアによって立ち上げられた製品です。彼らができることの良い実例については、この記事も参照してください。

長期的には、最終的にサイトを更新する必要があります。Browsium のようなソリューションを使用したとしても、IE6 は永遠に続くわけではありません。しかし、これらのソリューションを使用すると、短期的に変更を加える必要がなくなります。

現在アップグレードを行っている場合は、可能であれば IE8 をスキップして直接 IE9 に移行することを強くお勧めします。IE8 はすでに廃止されており、IE6 のサポートが終了すると、IE6 と同様のアップグレードの問題が発生します (おそらくそれほど悪くはありません)。

于 2012-04-10T18:10:11.533 に答える
0

IE 8 9 の非表示 CompitibilityView ボタンの場合、Jsf では、このコードを PhaseListner 実装クラスに配置するだけです。

@Override public void beforePhase(PhaseEvent event) { response.addHeader("X-UA-Compatible", "IE=edge"); } この行を実装された PhaseListner クラスに追加するだけです

于 2012-06-19T08:09:19.683 に答える