AJAX et feuille html / javascript

Résolu
Bonjour,

Voila mon probléme

je passe une feuille par le systéme AJAX contenant un script/javascript à l'intérieur
Manque de bol, le script ne fonctionne pas ; voila ma feuille que j'essaye de transmettre :

<input type="text" value="" />
<input type="button" value="test" onclick="test()" />
<script type="text/javascript">
function test(){
alert(document.getElementById('text').value);}
</script>

une idée ??

j'ai bien penser à faire une sorte de "parseur" javascript, avec du regex
ou j'ai tenter aussi un eval .. mais rien n'y fait !

4 réponses

  1. Eh oui, en Javascript, on ne peut pas faire :

    element.innerHTML = "<script> ...";

    Cela ne fonctionnera pas ! Il faut donc sortir le Javascript de la variable destinée à l'innerHTML.

    ;-)
    1. [resolu]

      Voila la solution ... héhé,

      navré de vous avoir déranger mais j'ai trouver ma solution tout seul

      xhr.open('GET','mapage.html',true); 
      xhr.onreadystate=function(){ 
      if(xhr.readyState==4 && xhr.status==200){ 
      insert(xhr.responseText);}} 
      xhr.send(null); 
      
      function insert(rep){ 
      var elt = document.getElementById('maDiv'); 
      elt.innerHTML=rep; 
      
      // c'est ici le truc ! 
      if(rep.match("<script","g")){ 
      var scs = elt.getElementsByTagName('script'); 
      for(var i in scs){ 
      var script = document.createElement('script'),content; 
      script.type="text/javascript"; 
      content = scs[e].innerHTML; 
      script.innerHTML=content; 
      document.body.appendChild(script);} 
      }
      
      1. Modérateur
        Ok, sorry Ajax en effet.
        Parfait, bonne continuation.
    2. Modérateur
      Ceci marche parfaitement chez moi :

      <html>
      	<body>
      		<input type="text" value="" id="test" />
      		<input type="button" value="click me" onClick="test()" />
      
      		<script type="text/javascript">
      		function test()
      		{
      			alert(document.getElementById('test').value);
      		}
      		</script>
      	</body>
      </html>
      1. Nop, toujours pas chez moi ....
        je précise que cette feuille passe par Ajax,
        et par conséquence elle est afficher dans une autre DIV , pas besoin de html > body
      2. xhr.open('get','maPage.html',true);
        xhr.onreadystate=function(){
        elt.innerHTML=xhr.responseText;}
        xhr.send(null);

        etc ..
    3. Modérateur
      Salut,

      Ton input text n'a pas id="test".
      Par conséquent, ceci est null :
      (document.getElementById('text').value)

      Essaye aussi ceci si besoin :
      onclick="javascript:test();"
      1. ton idée avais l'air d'être bonne ; mais elle ne marche pas !