Exécution du Après un appel AJAX</h2> <p>Dans une application basée sur AJAX, vous pouvez rencontrer des situations dans lesquelles vous devez injecter dynamiquement un <script> balise dans le DOM de la page. Cependant, une fois la réponse AJAX chargée et injectée, le <script> tag, il peut ne pas s'exécuter automatiquement.</p> <h3>Énoncé du problème</h3> <p>Considérez un élément div avec l'ID "Content" qui contient un <script> étiqueter. Après qu'un appel AJAX ait chargé avec succès les données d'un fichier PHP dans le div "Contenu", le <script> La balise à l'intérieur du contenu chargé reste inexécutée.</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre><div></pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre><div></pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div> <h3>Solution</h3> <p>Pour exécuter le <script> tag, vous pouvez évaluer manuellement son innerHTML à l'aide de JavaScript :</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre>var arr = MyDiv.getElementsByTagName('script'); for (var n = 0; n < arr.length; n++) eval(arr[n].innerHTML); //run script inside div</pre><div class="contentsignin">Copier après la connexion</div></div> <p>En parcourant la collection getElementsByTagName('script') et en évaluant le innerHTML de chaque balise <script> élément dans le div "MyDiv", vous pouvez vous assurer que le code injecté s'exécute correctement.</p>