3 回答

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
作為@James答案的替代方法,可以$.parseHTML()通過(guò)注意將包含腳本的布爾標(biāo)志添加到來(lái)解析HTML字符串true:
$.ajax({
url: 'example.html',
type: 'GET',
success: function(data) {
var content = $($.parseHTML(data, document, true)).find('#something');
$('#mydiv').html(content);
}
});
這樣,可以執(zhí)行嵌入在下載文本中的任何腳本。

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
我對(duì)此不太確定,但是可能發(fā)生的情況是,當(dāng)jQuery從構(gòu)建片段時(shí)$(data),腳本標(biāo)記在那時(shí)丟失了。
如果您可以將包含的頁(yè)面安排成一個(gè)片段:
<div id='something'>
<!-- ... -->
<script>var x = 'hello world';</script>
</div>
沒(méi)有其他周圍的東西,那么您的成功回調(diào)可以做到這一點(diǎn):
success: function(data) {
$('#mydiv').html(data);
}
現(xiàn)在,這些腳本標(biāo)簽將由jQuery html()函數(shù)注意,該函數(shù)顯式查找它們并將其刪除。但是,它確實(shí)保留了這些腳本塊,并在完成目標(biāo)內(nèi)容的更新后執(zhí)行它們。
添加回答
舉報(bào)