如果您通过 Ajax 在 div 中加载脚本块,如下所示:
<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");
}
如果您不想使用 jQuery 或其他库,另一种快速而肮脏的方法是使用eval()来执行您作为 DOM 文本插入的任何脚本代码。