Если вы загрузите блок скрипта в свой div через Ajax следующим образом:
<div id="content">
<script type="text/javascript">
function myFunction() {
//do something
}
myFunction();
</script>
</div>
... он просто обновляет DOM вашей страницы, myFunction () не обязательно вызывается.
Вы можете использовать метод обратного вызова Ajax, такой как метод jQuery ajax (), чтобы определить, что выполнять после завершения запроса.
То, что вы делаете, отличается от загрузки страницы с включенным в нее JavaScript с самого начала (который действительно выполняется).
Пример того, как использовать обратный вызов успеха и обратный вызов ошибки после получения некоторого контента:
$.ajax({
type: 'GET',
url: 'response.php',
timeout: 2000,
success: function(data) {
$("#content").html(data);
myFunction();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("error retrieving content");
}
Другой быстрый и грязный способ - использовать eval () для выполнения любого кода сценария, который вы вставили как текст DOM, если вы не хотите использовать jQuery или другую библиотеку.