3 回答

TA贡献1712条经验 获得超3个赞
作为@James答案的替代方法,可以$.parseHTML()通过注意将包含脚本的布尔标志添加到来解析HTML字符串true:
$.ajax({
url: 'example.html',
type: 'GET',
success: function(data) {
var content = $($.parseHTML(data, document, true)).find('#something');
$('#mydiv').html(content);
}
});
这样,可以执行嵌入在下载文本中的任何脚本。

TA贡献2065条经验 获得超14个赞
我对此不太确定,但是可能发生的情况是,当jQuery从构建片段时$(data),脚本标记在那时丢失了。
如果您可以将包含的页面安排成一个片段:
<div id='something'>
<!-- ... -->
<script>var x = 'hello world';</script>
</div>
没有其他周围的东西,那么您的成功回调可以做到这一点:
success: function(data) {
$('#mydiv').html(data);
}
现在,这些脚本标签将由jQuery html()函数注意,该函数显式查找它们并将其删除。但是,它确实保留了这些脚本块,并在完成目标内容的更新后执行它们。
添加回答
举报