Bonjour, comme beaucoup je suis confronté au même problème que vous.
J'aimerai exécuter un script JavaScript généré par une page PHP appelée par AJAX.
Donc, j'ai pris le même script que Jives69. Mais ça ne marche pas, je poste donc ici mon code pour voir si vous pourrez trouver d'où vient l'erreur.
Mon code JavaScript qui affiche le résultat de l'appel AJAX:
//url, c'est url de la page PHP et cadre, c'est la div où j'aimerai que soit placé le résultat
function requestGET(url,cadre) {
var XHR = getXMLHttpRequest();
XHR.open("GET",url, true);
XHR.onreadystatechange = function() {
if (XHR.readyState == 4 && XHR.status == 200) {
document.getElementById(cadre).innerHTML = XHR.responseText ; // content c'est le div ou on veut afficher le résultat
var AllScripts=document.getElementsByTagName("script")
for (var i=0; i<AllScripts.length; i++) {
var s=AllScripts[i];
if (s.src && s.src!="") {
// Précédement asynchrone, mis en synchrone pour éviter des problèmes de dépendances de scripts
eval(getFileContent(s.src));
}
else {
eval(s.innerHTML);
}
}
}
else {
cadre.innerHTML = '<img src="content/loading.gif" />';
}
}
XHR.send(null);
return;
}
L'affichage s'effectue bien, c'est juste l'exécution du JS.
Et mon code JS qui est transmis par AJAX.
<?php
echo '
<script>
function valueSlider() {
var resultat = document.forms["option"].elements["slider"].value;
document.forms["option"].elements["rangeValue"].value = "";
document.forms["option"].elements["rangeValue"].value += resultat+" %";
}
</script>';
?>
Alors ? Où ais-je commis une faute ?
Merci Jives69, ce que tu as mis marche à la perfection pour moi.
3 ans + tard : merci beaucoup, génial ! Ça m'enlève une belle épine du pied :)
Je l'ai simplifié n'ayant pas de src dans ma page appelée :
if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("ma_div").innerHTML=xmlhttp.responseText; var scripts=document.getElementById("ma_div").getElementsByTagName("script"); for (var i=0; i<scripts.length; i++) { eval(scripts[i].innerHTML); } }