Si vous chargez un bloc de 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 forcément appelé.
Vous pouvez utiliser une méthode de rappel Ajax telle que celle de jQuery méthode 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 d'utilisation du rappel de succès et du 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");
}
Un autre moyen rapide et sale est d'utiliser eval () pour exécuter tout code de script que vous avez inséré en tant que texte DOM si vous ne souhaitez pas utiliser jQuery ou une autre bibliothèque.