AJAX et feuille html / javascript

Résolu/Fermé
LouLou Piwel - 11 mars 2011 à 23:02
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 12 mars 2011 à 22:50
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 !
A voir également:

4 réponses

crapoulou Messages postés 28158 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 16 avril 2024 7 990
11 mars 2011 à 23:10
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
LouLou Pixel
12 mars 2011 à 08:19
ton idée avais l'air d'être bonne ; mais elle ne marche pas !
0
crapoulou Messages postés 28158 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 16 avril 2024 7 990
12 mars 2011 à 11:25
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
LouLou Pixel
12 mars 2011 à 14:43
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
LouLou Pixel
12 mars 2011 à 14:47
xhr.open('get','maPage.html',true);
xhr.onreadystate=function(){
elt.innerHTML=xhr.responseText;}
xhr.send(null);

etc ..
0
[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
crapoulou Messages postés 28158 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 16 avril 2024 7 990
12 mars 2011 à 22:40
Ok, sorry Ajax en effet.
Parfait, bonne continuation.
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
12 mars 2011 à 22:50
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