Exécution de scripts injectés via innerHTML après une requête AJAX
Lorsque vous utilisez AJAX pour remplir un élément avec les données d'un script côté serveur, il est Il est courant d'inclure une balise de script dans ces données. Cependant, par défaut, ces scripts injectés ne sont pas exécutés. Cet article présente une solution pour exécuter de tels scripts après l'appel AJAX.
Problème :
Considérez un div avec l'identifiant "Content" qui reçoit dynamiquement des données, y compris un < ;script> tag, à partir d'un fichier PHP via AJAX. Malgré la présence de la balise script, le code qu'elle contient reste inexécuté.
<div>
Solution :
Pour exécuter le script injecté via innerHTML, utilisez le code suivant :
var arr = MyDiv.getElementsByTagName('script'); for (var n = 0; n < arr.length; n++) eval(arr[n].innerHTML); //run script inside div
Ce code récupère le