2014-02-25 19 views
8

Ok Bit von einem seltsamen hier, Iv nicht andere Berichte von diesem gesehen, hatten wir einige UI Bugs von IE11 Benutzer kürzlich gemeldet, nachdem ich einige Tests habe ich festgestellt, dass nach der Durchführung eines ReRender (Ich benutze A4J) IE11 setzt HTML-Elemente am falschen Ort z.IE11 Ändert DOM-Struktur auf JSF render

<s:div id="parent" rendered="#{someCondition}"> 
    <div id="brother"></div> 
    <div id="sister"></div> 
</s:div> 

wie diese erscheint nach rerender

<s:div id="parent" rendered="#{someCondition}"> 
    <div id="brother"> 
     <div id="sister"></div> 
    </div> 
</s:div> 

die offensichtlich Chaos mit dem Layout zu spielen ist

I JSF/HTML-Komponenten am Misch ziemlich viel, aber glaube nicht, dass diese Probleme verursacht werden soll, ?

Irgendwelche Ideen, was könnte dies verursachen?

JSF 1.2 | RichFaces 3.3 | Facelets

+0

Haben Sie eine Lösung für dieses Problem gefunden? Es kann vermieden werden, indem der HTML-Code in einigen Fällen geändert wird (ich denke, nur ein einzelner Knoten innerhalb des neu gerenderten Bereichs), aber das sind nur Umgehungslösungen für Code, der in allen anderen Browsern funktioniert. – Roben

+0

@Roben ja ich denke ich habe das Problem gefunden, das Richfields https: //issues.jboss spezifisch ist.org/browse/RF-13443, Ich bin gerade dabei, mit dem gepatchten AJAX.js zu testen, so werde ich Sie wissen lassen – DaveB

+0

Danke. Der Sarissa-Fix funktionierte nicht für mich (hat es vor einigen Wochen überprüft), aber vielleicht habe ich etwas falsch gemacht. Sie sollten es auf jeden Fall versuchen. – Roben

Antwort

6

Haben Sie versucht, einen Meta-Tag für IE8 Rendering-Modus einstellen:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 

Da ich nur unterstützt bis zu Internet Explorer 8 auch 3 Richfaces gehört habe, oder Sie könnten prüfen zu Richfaces 4 für aktuellen Browser-Schalen Unterstützung.

Microsoft: how to ensure compatibility

Hoffnung, das hilft.

+1

Probieren Sie es einfach und es hat in mindestens einem speziellen Fall funktioniert, Vielen Dank! In der Tat, '' ist in diesem Fall ausreichend, wenn Sie nicht neuere CSS-Funktionen verlieren wollen. (Ich war mir sicher, dass ich 'X-UA-Compatible' vorher probiert habe und es hat nicht funktioniert - vielleicht habe ich dann etwas falsch gemacht.) – Roben

+1

Ich kann bestätigen, dass' 'behebt die Probleme mit IE11 und Richfaces 3.3.3. –

+0

Ich hatte ein ähnliches Problem mit Richfaces 3.3.1 (Autosuggest) die ausgewählten Werte wurden nicht in meinem Backing-Bean gelesen, aber das Hinzufügen des Meta-Tags (IE 10) löst es => keine automatische Suggestion auf solche Felder – David

1

Da mein Problem mit AJAX-Rendering einfach war, entschied ich mich, die Implementierung zu ändern (Laden aller Formulare und einfach die Sichtbarkeit mit jQuery), aber ich habe etwas Zeit damit verbracht, und da geht mein Beitrag. https://ruleoftech.com/2015/patching-richfaces-3-3-3-ajax-js-for-ie11 http://ruleoftech.com/2013/patching-richfaces-3-3-3-ajax-js-for-ie9

Sie auch einen Patch von prototype.js in Richfaces-impl.jar org \ Ajax4jsf \ javascript \ scripts befindet, um könnten versuchen:

Einige der Renderprobleme können mit diesen Updates behoben werden , Ändern der Methode, die den Browser mithilfe von navigator.userAgent auf IE setzt.

Wenn Sie jetzt Prototype.Browser an der Browserkonsole debuggen, werden Sie IE11 gerecht.

Achten Sie darauf, dass RF alle dritten Bibliotheksskripts, die es verwendet, "minimieren" kann.
Überprüfen Sie die Dateien in der des HTML geladen. Vielleicht sollten all diese Änderungen in den richfaces-impl-3.3.3.Final.jar/org/ajax4jsf/framework.pack.js vorgenommen werden.

0

Ich benutze die Patching-Richfaces-3-3-3-Ajax-Js-für-IE9 Guide, um Richface 3.3.3 mit ie11 zu verwenden. Ich habe gerade Version 0.9.9.7 von Sarissa auf Ajax.js aktualisiert.

Das Meta-Tag X-UA-Compatible konnte es in meinem Fall nicht verwenden, es war in einem Iframe (Kind) und ich ignorierte das Meta-Tag.