Bonjour!

je vien de me faire un parser pour récupérer le code js d'une page que j'ai appelé via ajax seulement lors de l'évaluation du code avec eval il semble que ma fonction ne soit pas évaluée alors que l'alert que j'ai mis pour le test réussi.

je comprend pas bien ce qui ce passe.

si vous voulez vous pouvez aller sur
[EDIT]http://mnj.serveftp.com/newleague/test/pageTest.php

merci d'avance pour votre aide.

ps: voici les bouts de codes qui sont concernés:
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
//pageTest.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../design.css"/>
<title>page de test</title>
</head>
<body>
<?php include_once('class/AJAX_Class.js')?>
<div id="centre" class="centre">
 
</div>
<script type="text/javascript">
   objAjax.execute({"id": "centre", "url": "test.html", "asynchronus": false});
</script>
</body>
</html>
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
//test.html
<script type="text/javascript">
function click(){
   alert("coucou");
}
</script>
 
<input type="button" value="bouton" onclick="click()" />
 
toto
 
<script type="text/javascript">
 
   alert("évalué");
 
</script>
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
40
41
42
43
44
// Lorsque la requête réussit
Ajax.prototype.onComplete = function (response)
{
   // parser de javascript
   reponse = response;
   reponse = reponse.match(/(?:<script.*javascript.*>(?:[^<]+[\n\0\f\r]*)*<\/script>)*/gi);
   var script = "";
   for(i = 0; i < reponse.length; i++){
      if (reponse[i] != "") {
         script += reponse[i];
      }
   }
   script = script.replace(/(?:<script.*javascript.*>)|(?:<\/script>)|(?:[\n\f\0\r]*)/gi, "");
   alert(script);
   eval(script);
   // fin du parser de javascript
 
   // si il y a un objet à remplir (this.idFillObj != "")
   if (this.idFillObj != ""){
 
      // insertion de response après le innerHTML de l'objet à remplir
      if (this.append == "after") {
         document.getElementById(this.idFillObj).innerHTML = this.inner+"<br />"+response;
 
      // insertion de response avant le innerHTML de l'objet à remplir
      }else if (this.append == "before"){
         document.getElementById(this.idFillObj).innerHTML = response+"<br />"+this.inner;
 
      // response remplace le innerHTML de l'objet à remplir
      }else if (this.append == "no") {
         document.getElementById(this.idFillObj).innerHTML = response;
      }
   }
 
   // réinitialisation des variables pour éviter les conflits entre deux appels
   this.asyn = true;
   this.data = "";
   this.url = "";
   this.method = "POST";
   this.returnFormat = "txt";
   this.idFillObj = "";
   this.inner = "";
   this.append = "no";
}