2012-06-14 4 views
0

Я заметил, если вы .load(url), а URL-адрес - это страница, содержащая скрипты, эти сценарии автоматически выполняются. Есть ли способ вызвать .load(url) без выполнения сценариев, а затем, возможно, выполнить их позже? Они, похоже, выполняются, даже если я использовал .load(url) для элемента, который не был добавлен в документ.Выполняет ли jQuery .load() автоматически выполнение скриптов?

ответ

2

jQuery's 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); 
}); 

Кроме того, из .load() документации (http://api.jquery.com/load/):

При вызове .load(), используя URL без выражения с суффиксом селектора, содержание передается в .html() перед удалением скриптов. Это выполняет блоки скриптов перед их отбрасыванием. Если .load() вызывается с выражением селектора, добавленным к URL-адресу, однако, скрипты удаляются до обновления DOM и, таким образом, не выполняются.

Смежные вопросы