Bonjour à tous :)
J'ai un p'tit sushi :D euh.. souci lol ^^
Je fais une requête ajax sur mon serveur bref je vous passe les détails du code ajax...
Le serveur me renvoi du javascript que je dois exécuter coté client et du html.
Le code renvoyé est sous la forme:
html
....
javascript
....
html
....
javascript
....
html
....
javascript
etc...
La réponse ajax est mise dans une balise <DIV> repéré par la variable 'target' dans mon code js
Bref, dans mon code js, pour exécuter l'ajax:
[code]
var div = document.getElementById(target);
div.innerHTML = xhr.responseText;
var x = document.getElementsByTagName("SCRIPT");
for(var i=0;i<x.length;i++) {
window.eval(x[i].text);
}
[/code]
Ce qui fonctionne impeccablement bien sous FF, mais très peu sous IE, en effet, seul la dernière balise <script> est exécutée.
J'ai donc modifié mon code comme suit:
[code]
var div = document.getElementById(target);
div.innerHTML = xhr.responseText;
var x = document.getElementsByTagName("SCRIPT");
alert('Nombre de <SCRIPT> trouvés: ' + x.length);
for(var i=0;i<x.length;i++) {
//window.eval(x[i].text);
}
[/code]
Sous Firefox: 3 balises scripts trouvées, sous IE: 1 seule.
Et ceci, peu importe le nombre de balises se trouvant dans la page, IE n'en trouve toujours qu'une seule, et c'est la dernière de la page chargée par ajax.
Une idée du pourquoi ? Et comment corriger le bordel ?
(Vive IE -_-' mais que j'en ai ma claque de ce navigateur ...)
Thanks all ;)