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:Function sendDataXML (les lignes importantes):
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'; } }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 function sendDataXML(method, url, data, noeudDest) { ..... xmlRequest.overrideMimeType('text/xml'); ...... if (xmlRequest.status == 200) { noeudDest.innerHTML=""; addChild(noeudDest,xmlRequest.responseXML.documentElement); } } ..... }
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 <? 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>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é ...
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)); } }
Voila pour moi l'erreur se situe dans la fonoction addchild() mais je ne suis pas sur..
Merci d'avance
Partager