Bonjour tout le monde,

Suite à ce post :
http://www.developpez.net/forums/vie...439640#2500971
J'ai voulu essayer mais ca ne marche pas sous IE...
Voici ce que je fais :

J'ai un bouton, quand je clique sur celui ci je fais une requete AJAX dans le but de remplir un div avec du HTML mais surtout dans le but de récupérer et donc de créer à la volé une fonction javascript que le serveur m'envoie.

Function qui gère l'action du bouton:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
if (document.getElementById('test_button'))
        {
                document.getElementById('test_button').onclick=function()
                {
                        sendDataXML('POST','test_xml.php','valeur='+escape(document.getElementById('test_text').value),document.getElementById('test_result'));
                        document.getElementById('test_result').innerHTML='Veuillez patienter...Requête en cours';
                }
        }
Function sendDataXML (les lignes importantes):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
function sendDataXML(method, url, data, noeudDest)
{
.....
                xmlRequest.overrideMimeType('text/xml');
......
                 if (xmlRequest.status == 200)
                 {
                      noeudDest.innerHTML="";                                          addChild(noeudDest,xmlRequest.responseXML.documentElement);                                        
}
                        }
.....
}
Et enfin le fichier test_xml.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
include_once($_SERVER['DOCUMENT_ROOT']."global/lib.inc.php");
header('Content-type: text/xml; charset=iso-8859-15');
?>
<html>
 <body>
  <script type="text/javascript">
function toto(){
  alert('bonjour <?=$_POST['valeur']?>');
}
toto();
  </script>
  Text en <b>HTML</b>
 </body>
</html>
Sachant que la function sendDataXML utilise ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function clone(elem){
      if(elem.nodeName == "#text")
         return elem;
 
      c = document.createElement(elem.nodeName);
      if(elem.hasAttributes()){
         for(var i=0;i<elem.attributes.length;i++){
            var curr = elem.attributes[i];
            c.setAttribute(curr.name,curr.value);
 
         }
      }
      return c;
   }
 
function addChild(par,enf){
      if(enf.childNodes.length > 0){
         var tmpe = new Array();
         while(enf.childNodes.length > 0){
            var elem = enf.removeChild(enf.firstChild);
            tmpe.push(elem);
         }
         if(enf.parentNode){
            var epar = enf.parentNode;
            var el = epar.removeChild(enf);
            par.appendChild(clone(el));
         }
         else
            par.appendChild(clone(enf));
         var cmpt=0;
         while(tmpe.length>0){
            this.addChild(par.lastChild,tmpe.shift());
            cmpt++;
         }
      }
      else{
         par.appendChild(clone(enf));
      }
   }
Dans le post auquel je fais référence, Grepack a eu aussi une erreur sous IE, je ne sais pas si tu as réussi à la corrigé ...

Voila pour moi l'erreur se situe dans la fonoction addchild() mais je ne suis pas sur..

Merci d'avance