tataye Posté 7 Août 2007 Posté 7 Août 2007 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 ?
tataye Posté 8 Août 2007 Auteur Posté 8 Août 2007 Bonjour, En attendant de trouver une réponse satisfaisante, j'ai mis un setTimeout sur la fonction qui affecte le code aux liens. Je trouve ça assez cracra mais bon... Si vous avez des suggestions, n'hésitez pas !
tataye Posté 9 Août 2007 Auteur Posté 9 Août 2007 Je vais reformuler ma demande : Lorsque l'on remplit un élément cible tel qu'un div avec une information récupérée en ajax, comment fait-on pour déterminer que le div a fini d'être rempli ? Faut-il par exemple tester dans un premier temps le statut HTTP, puis faire une boucle qui compare la réponse de la requête avec le contenu du div, et tant que c'est différent on ne sort pas de la boucle... Une idée ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant