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