7

Uygulamamız IE11 ve EM ile çalışamaz. JSF-1.2 ve RichFaces 3.X'u değiştiriyoruz. IE11'deki Web sayfasını OK numaralı çalışmadan çalıştırdığımızda, ile IE11'u kullanmamız gerekiyor. için olası bir yöntem, kodundan sayfa için EM'yi devre dışı bırakıyor mu?Enterprise Mode ile IE11'i kullanarak JSF uygulaması

IE konsol yükselme hatası: "XML5632: Yalnızca bir kök öğesine izin verilir." Sayfalar arasında geçiş yaparken oluşur.

PS: Uygulama sorunsuz IE8, IE9 ve IE11 üzerinde çalışıyor ancak IE11 ve EM IT'S ile çalışırken hata yükselterek. Başvurunuz sadece sınırlı ağ içinde intranet ve erişilebilir içinde sınırlı ise

+0

? Veya farklı teknolojilerle uygulamayı yeniden programlamak mı istiyorsunuz? –

+0

Kuruluş kipi tanımı: Şu anda Windows Internet Explorer 8'in bir öykünmesi olan Enterprise Mode'da sayfa oluşturuluyor ve IE8 öğesinde iframe desteklemiyor. (http://technet.microsoft.com/library/dn640687.aspx) Artık IE8 motoru üzerinde çalışmak için bir anlam oluşturma uygulaması yok. –

+0

Servlet filtresinden http header "X-UA-Compatible: IE = Edge" eklemeyi deneyin. ör.: response.addHeader ("X-UA Uyumlu", "IE = Kenar"); –

cevap

2

Bu sorunla ilgili çözüm, XHTML ürününü sunucudan değil, yerel HTML'dan zımparalamıyor. Bu, application/xhtml+xml'dan text/html'a cevabı değiştiren bir filtre sağlar. Filtre, kullanıcı aracısının yanıt formu üstbilgisini alın ve'un ayarlanıp ayarlanmadığını, yani IE11'un Kurumsal Mod ve IE8 numaralı öykünüm altında çalıştığı anlamına gelir.

Bizim uygulanan çözüm: ** ** JSF ** ve ** RichFaces _upgrade_ makul olduğu

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 

    String userAgent = ((HttpServletRequest) request).getHeader("user-agent"); 

    if (userAgent != null && userAgent.toLowerCase().contains("compatible; msie 8.0")) 
    { 
    chain.doFilter(request, new ForcableContentTypeWrapper((HttpServletResponse) response)); 
    } 
    else 
    { 
    chain.doFilter(request, response); 
    } 
} 

private class ForcableContentTypeWrapper extends HttpServletResponseWrapper 
{ 
    public ForcableContentTypeWrapper(HttpServletResponse response) 
    { 
    super(response); 
    } 

    @Override 
    public void setContentType(String type) 
    { 
     if (type.contains("application/xhtml+xml")) 
    { 
     super.setContentType(type.replace("application/xhtml+xml", 
              "text/html")); 
    } 
    else 
    { 
     super.setContentType(type); 
    } 

    } 
} 
-1

sonra size gelen uygulamanın URL'sini kaldırmak için deneyebilirsiniz, ağdaki grup politikası

http://msdn.microsoft.com/en-us/library/dn640688.aspx

aracılığıyla EM devre dışı bırakabilir veya SiteList dosya böylece uygulama EM sitesi listesine dahil edilmeyecektir

Ek referanslar (kayıt EM girişini yukarıda linkte belirtilen işaret edilmektedir dosyası): http://msdn.microsoft.com/en-us/library/dn640699.aspx

+0

Bu benim için bir çözüm değil. Müşterilerimiz bunun için şirket politikasına ve uygulama EM'de çalıştırılmak zorunda olan başka bir uygulama altında Frame'de çalışıyor. Kod sayfasından EM devre dışı bırakılmasını istiyorum. –