AJAX et feuille html / javascript

Résolu
LouLou Piwel -  
Bilow Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   -
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. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    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();"
    0
    1. LouLou Pixel
       
      ton idée avais l'air d'être bonne ; mais elle ne marche pas !
      0
  2. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    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>
    0
    1. LouLou Pixel
       
      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
      0
    2. LouLou Pixel
       
      xhr.open('get','maPage.html',true);
      xhr.onreadystate=function(){
      elt.innerHTML=xhr.responseText;}
      xhr.send(null);

      etc ..
      0
  3. LouLou Pixel
     
    [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);} 
    }
    
    0
    1. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
       
      Ok, sorry Ajax en effet.
      Parfait, bonne continuation.
      0
  4. Bilow Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   117
     
    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.

    ;-)
    0