appel javascript impossible dans page appelée en ajax

appel javascript impossible dans page appelée en ajax - HTML/CSS - Programmation

Marsh Posté le 07-08-2007 à 22:09:03    

Bonjour à tous,
 
Je met à jour un div en ajax lorsque je clique sur un bouton.
Cela fonctionne bien lorsque je n'affiche que du code XHTML.
Mais si je met du code javascript dans ce contenu, il ne s'exécute pas.
 
Voici un exemple :
 
Mon bouton, rien de bien compliqué :

Code :
  1. <input type="button" value="envoyer" onclick="test();"/>


 
Ma fonction "test()" :

Code :
  1. function getXhr(){
  2.          var xhr = null;
  3.          if(window.XMLHttpRequest) // Firefox et autres
  4.          xhr = new XMLHttpRequest();
  5.          else if(window.ActiveXObject){ // Internet Explorer
  6.            try {
  7.                       xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  8.                   } catch (e) {
  9.                       xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  10.                   }
  11.         }
  12.         else { // XMLHttpRequest non supporté par le navigateur  
  13.            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  14.            xhr = false;
  15.         }
  16.         return xhr;
  17. }
  18. function moncv(){
  19.         var xhr = getXhr()
  20.         // On défini ce qu'on va faire quand on aura la réponse
  21.         xhr.onreadystatechange = function(){
  22.           // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
  23.           if(xhr.readyState == 4 && xhr.status == 200){
  24.             document.getElementById("data" ).innerHTML = xhr.responseText;
  25.           }
  26.         }
  27.         xhr.open("GET","test.php",true);
  28.         xhr.send(null);
  29. }


 
Et voici le contenu de mon fichier "test.php" :
 

Code :
  1. <?php
  2. echo "Bonjour";
  3. ?>


 
Ici, "Bonjour s'affiche bien
 
Mais si le contenu est celui-ci :
 

Code :
  1. <script type="text/javascript">
  2. document.write("Bonjour" );
  3. </script>


 
Rien ne s'affiche, donc j'en déduis que les appels de Javascript ne fonctionnent pas.
 
Avez-vous une idée ?
 
Je vous remercie

Reply

Marsh Posté le 07-08-2007 à 22:09:03   

Reply

Marsh Posté le 08-08-2007 à 09:27:49    

up

Reply

Marsh Posté le 08-08-2007 à 12:22:06    

Ca devrait fonctionner. Maintenant inutile de faire un document.write bonjour, pourquoi ne pas juste retourner bonjour et changer le innerHtml ?

Reply

Marsh Posté le 08-08-2007 à 12:42:30    

c'était pour vous montrer que le code javascript ne s'exécutait pas, car mon but à terme n'est pas d'afficher le mot Bonjour, mais d'afficher un panneau en accordéon disponible dans différents framework.
 
Mais j'ai trouvé la solution.
Je dois utiliser la fonction eval(); qui interpète le code Javascript.
 
Merci quand mm

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed