3 回答

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

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