Si vous chargez un bloc script dans votre div via Ajax comme ceci :
<div id="content">
<script type="text/javascript">
function myFunction() {
//do something
}
myFunction();
</script>
</div>
... il met simplement à jour le DOM de votre page, myFunction() n'est pas nécessairement appelé.
Vous pouvez utiliser une méthode de rappel Ajax, telle que celle du module jQuery ajax() pour définir ce qu'il faut exécuter lorsque la requête se termine.
Ce que vous faites est différent du chargement d'une page avec JavaScript inclus dès le départ (qui est exécuté).
Un exemple de la façon d'utiliser le rappel de réussite et le rappel d'erreur après avoir récupéré du contenu :
$.ajax({
type: 'GET',
url: 'response.php',
timeout: 2000,
success: function(data) {
$("#content").html(data);
myFunction();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error retrieving content");
}
Une autre façon rapide et sale est d'utiliser eval() pour exécuter tout code script que vous avez inséré comme texte DOM si vous ne voulez pas utiliser jQuery ou une autre bibliothèque.
0 votes
Comment chargez-vous le div ? Cela dépend de la bibliothèque que vous utilisez, vous pouvez normalement contrôler si vous voulez juste exécuter les scripts après le chargement ajax.
1 votes
Après
window.onload
Je crée unXMTHttpRequest
pour demander une autre page (php) qui contient le contenu du div, y compris un script. Je fais cela avec du simple JS, pas de bibliothèque (autre que la mienne).