1

我有JSF/Richfaces網絡應用程序。此應用程序最初打算用於IE6瀏覽器。現在我們必須將其移植到IE-8以及。 App Server是Weblogic 10.3。我嘗試了下面的解決方案。IE8兼容JSF/Richfaces應用程序

  1. 用於添加Header參數,X-UA兼容的過濾器。
  2. JSF PhaseListener添加標題參數,X-UA兼容。
  3. 在頁面頭部的第一行添加了Meta標籤。

以上都不是。另外我無法自定義標題值。 HttpRequestWrapper不起作用。

請建議解決方案。我總是希望我可以在JSF中使用scriptlet或JSF中任何位置的邏輯標籤。

+0

的X-UA兼容的標籤添加此行應該做預期的事情;你能告訴我們你是如何使用它的嗎?你把它設置爲EmulateIE6嗎? – Sampson 2012-04-10 13:06:49

+0

作爲頭部的第一行添加了。但是在呈現的代碼中,這出現在JSF css和scriptlet之後。 – SKR 2012-04-11 06:39:44

回答

0

IE8中的X-UA-Compatible選項只能用作IE7兼容性的後備功能。它沒有模擬IE6的選項。

因此,您所處的情況 - 有一個針對IE6編寫的Intranet應用程序,並且在IE8中不起作用 - 這是公司長期堅持使用IE6的主要原因之一:它可能很難升級。

當然,理想的解決方案是更新您的站點中的代碼,以便它可以在IE8(或更好的IE9)中運行。這可能是一個漫長而昂貴的過程,但沒有正式的捷徑解決方案。

如果你不能更新你的網站,你將不得不堅持使用IE6。但是有一些解決方案可能會減少痛苦。

明顯的快速修復答案是將您的主要平臺升級到IE8或IE9,但繼續運行I​​E6,保留在虛擬機中,並僅用於需要它的特定站點。還有IETester的超便宜選項,它可以在同一臺機器上運行多個版本的IE(包括IE6)。然而,IETester已知經常崩潰,所以可能不是理想的解決方案。這對於在各種IE版本中測試網站非常有用,但不適合實際完成有用的工作。

這些將是最好的止損措施,但會讓您繼續運行,同時允許您升級其餘的基礎架構。

稍微更健壯的答案可能會以Browsium的形式出現。這是一些前微軟工程師推出的產品,旨在幫助舊IE6特定站點在更新版本的Explorer中工作。 See also this article爲他們可以做的一個很好的現實世界的例子。

從長遠來看,您將不得不最終更新您的網站;即使使用Browsium解決方案,IE6也不會永遠持續下去。但是這些解決方案將使您不必在短期內進行更改。

如果您現在正在進行升級,我強烈建議您跳過IE8並儘可能直接移至IE9。 IE8已經過時,並且在IE6支持結束時會導致類似的IE6升級問題(儘管可能不是那麼糟糕)。

+0

感謝您的回覆! 1.恐怕我們必須遷移到IE8,並且還要與IE6保持向後兼容性**。跳過IE8並轉向IE9是無可爭議的。 2.此元標記在基於Struts的應用程序中正常工作,但不在JSF/Richfaces中正常工作。感謝scriptlet/logic標籤,我可以輕鬆解決特定的問題。 – SKR 2012-04-11 06:54:44

+0

Hello @SKR無需在xhtml中添加meta標籤只需看看我的上面答案就可以解決所有問題 – 2012-06-19 11:56:52

0

對於IE 8 9隱藏CompitibilityView按鈕在JSF中,你只要把這個代碼在你PhaseListner實現

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

+0

謝謝Jigar Patel。我會盡快回復。 – SKR 2012-06-19 12:10:35

+0

@Jigar:你的大寫字母鎖被掛起,現在它看起來像是一個惱人的小孩尖叫。這是不專業的。我建議刪除評論,並關閉大寫鎖定後重新輸入。順便說一下,如果OP尚未確認答案是否已*實際*有助於解決問題,並且OP已*熟悉系統的工作方式,那麼嘮叨勾號是相對粗魯的。 – BalusC 2012-06-19 13:05:58