2012-06-14 23 views
0

我注意到如果你.load(url)和url是一個包含腳本的頁面,這些腳本會自動執行。有沒有方法可以在不執行腳本的情況下調用.load(url),然後稍後執行它們?即使我已經在未附加到文檔的元素上使用.load(url),它們似乎仍然執行。jQuery的.load()是否總是自動執行腳本?

回答

2

jQuery的load()檢查script塊並執行它們(通過它的DOM操作幫助代碼)。

您可以用$.ajax()請求的頁面,然後使用html()方法來設置HTML - 不要使用append(),因爲它會執行script塊了。

2

我相信你可以使用.get()http://api.jquery.com/jQuery.get/

例如:

$.get('test.html', function(data) { 
    // HTML text is now in data variable 
    // If we use .html() the scripts are then executed. 
    $('.result').html(data); 
}); 

此外,從​​文檔(http://api.jquery.com/load/):

當使用URL不具有後綴選擇表達調用.load()時,內容是在腳本被移除之前傳遞給.html()。這會在腳本塊被丟棄之前執行。但是,如果使用附加到URL的選擇器表達式調用.load(),則在DOM被更新之前,腳本將被剝離,因此不會被執行。