J'ai fait une petite fonction toute simple à partir de la librairie Yahoo :
var ajax = { succes : function( o ) { document.getElementById(o.argument.cible).innerHTML = o.responseText; }, echec : function( o ) { }, soumettreFormulaire : function(leFormulaire, lURL, laCible) { var formulaire = document.getElementById(leFormulaire); YAHOO.util.Connect.setForm(formulaire); callback.argument = { cible : laCible }; YAHOO.util.Connect.asyncRequest( 'POST', lURL, callback ); }, naviguerVers : function(lURL, laCible) { var url = lURL.split( '?' ); if ( url.length > 0 ) { callback.argument = { cible : laCible }; YAHOO.util.Connect.asyncRequest( 'POST', url[ 0 ], callback, url[ 1 ] ); } } }; var callback = { success : ajax.succes, failure : ajax.echec, scope : ajax };
Le problème que je rencontre est le suivant :
Avec la fonction naviguerVers j'alimente un div avec du code html et notamment des liens. J'aimerai pouvoir affecter à ces liens du code javascript.
J'ai l'impression que le code se déclenche trop rapidement, les liens ne sont pas encore dans le div quand j'essaie de leur affecter du code.
J'en veux pour preuve que lorsque j'intercale un alert entre la fonction naviguerVers et la fonction qui affecte le code aux liens, là ça fonctionne.
Y a-t-il possibilité d'avoir un élément qui m'indique que le div est rempli ou que la requête est allée jusqu'au bout de son exécution ?
J'ai vu dans la doc de la librairie Yahoo que l'on pouvait ajouter une fonction complete dans le callback, mais je ne vois pas comment l'utiliser pour interrompre toute exécution tant que la requête n'est pas complète.
Auriez-vous des suggestions ?