Exécution de Éléments injectés via AJAX</strong></p> <p>Dans certains scénarios, un appel AJAX peut récupérer du contenu incluant <script> balises. Cependant, le code de script contenu dans ces balises peut ne pas s'exécuter après avoir été injecté dans le DOM.</p> <p><strong>Explication du problème :</strong></p> <p>Considérez la structure HTML suivante :</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> <p>Une requête AJAX est effectuée pour remplir le div "Contenu" avec les données d'un fichier PHP. Supposons que la réponse PHP inclut le code suivant :</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> <p>Une fois la requête AJAX terminée, le <script> La balise peut ne pas être exécutée en raison d'un manque d'accès au DOM au moment de l'insertion.</p> <p><strong>Solution :</strong></p> <p>Pour exécuter le <script> code, on peut utiliser la technique JavaScript suivante :</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>Ce code récupère tous les <script> éléments dans le div spécifié et évalue leur innerHTML, exécutant efficacement le code qu'ils contiennent.</p>