Jeśli ładujesz blok skryptu w swoim div przez Ajax w ten sposób:
<div id="content">
<script type="text/javascript">
function myFunction() {
//do something
}
myFunction();
</script>
</div>
... po prostu aktualizuje DOM twojej strony, myFunction () niekoniecznie jest wywoływana.
Możesz użyć metody wywołania zwrotnego Ajax, takiej jak ta w ajax () jQuery metodzie aby zdefiniować, co ma być wykonane po zakończeniu żądania.
To, co robisz, różni się od ładowania strony z zawartym w niej JavaScriptem od samego początku (co jest wykonywane).
Przykład użycia funkcji wywołania zwrotnego sukcesu i wywołania zwrotnego błędu po pobraniu zawartości:
$.ajax({
type: 'GET',
url: 'response.php',
timeout: 2000,
success: function(data) {
$("#content").html(data);
myFunction();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error retrieving content");
}
Innym szybkim i nieuczciwym sposobem jest użycie eval () do wykonania dowolnego kodu skryptu, który wstawiłeś jako tekst DOM, jeśli nie chcesz używać jQuery lub innej biblioteki.