Bonjour,
J'ai une application JSF (1.2 avec Facelets, Richfaces, etc) qui était exclusivement destinée à IE6. Désormais, on doit gérer aussi Firefox (ouf !).
J'ai une page contenant un formulaire, avec un bouton qui rafraichit ce formulaire. Lors du rafraichissement, j'ajoute des liens (<h:commandLink>) dans ce formulaire. En gros, j'ai un truc comme ça :
1 2 3 4 5 6 7
|
<h:form id="toto">
...
<a4j:commandButton ... reRender="toto"/>
...
<h:commandLink .../>
</h:form> |
Mon souci vient du code du command link généré par JSF. En gros, il ressemble à ça :
<a href="#" onclick="if(typeof jsfcljs == 'function'){jsfcljs(document.forms['toto'],'...','');}return false">BLABLA</a>
(pour info, jsfcljs est la fonction Javascript générée par le composant <h:commandLink/>)
Mon souci, c'est que document.forms["toto"] fonctionne initialement, mais dès que le formulaire est regénéré suite au a4j:commandButton, ce code Javascript ne fonctionne pas sur FF (mais bien sur IE) :
1 2 3
| var x = document.forms["toto"];
var y = document.getElementById("toto");
alert("1: " + x + "\n2: " + y); |
me retourne :
1 2
| 1: undefined
2: [object HTMLFormElement] |
Du coup, sur FF, j'ai une erreur Javascript quand je clique sur le lien, qui ne fonctionne pas du coup.
Une idée pour résoudre le problème (sans avoir à changer le reRender du <a4j:commandButton>) ?
Partager