Bonjour à tous
je crée actuellement un site avec un div principal destiné à recevoir des pages php avec AJAX via mon menu. Tout se passe bien, voici ma fonction :
Code javascript : 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 function affichePage(url, div){ var xhr_object = null; if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); else if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); xhr_object.open("GET", url, true); xhr_object.onreadystatechange = function(){ if ( xhr_object.readyState == 4 ){ document.getElementById(div).innerHTML = xhr_object.responseText; evalueScripts(div); } } xhr_object.send(null); }
Le problème c'est que mon js n'est pas interprété...
Du coup, en fouillant sur cette FAQ, j'ai trouvé pourquoi (fonction eval) et j'ai récupéré le code, je l'ai adapté à mes besoins ce qui donne :
Code 'javascript" : 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
40
41 function getXMLHTTP(){ var xhr=null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e1) { xhr = null; } } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); } return xhr; } function affichePage(url, div) { var _xmlHttp = getXMLHTTP(); _xmlHttp.open("GET", url, true); _xmlHttp.onreadystatechange=function() { if(_xmlHttp.readyState==4 && _xmlHttp.responseText) { document.getElementById(div).innerHTML=_xmlHttp.responseText; evalueScripts(div); } }; // envoi de la requête _xmlHttp.send(null) } function evalueScripts(targetId) { var mesScripts = document.getElementById(targetId).getElementsByTagName("script"); for (var i=0; i<mesScripts.length; i++) { eval(mesScripts[i].innerHTML); } }
Et là c'est bon mon js est correctement interprété sauf que la réponse AJAX ne s'affiche plus dans mon div mais dans ma page entière et je vois pas pourquoi...
Merci de votre aide
Partager