Я использую jquery 1.3.2 для извлечения фрагментов html (включая скрипт) с сервера. Типичный ответ может быть таким:
<div id="content"><div id="inner">...
<script type=...> alert("hello world");</script>
<p>Hello World</p>
</div></div>
Я использую функцию запроса .get:
$.get($(this).attr("href"), function(response) {
$("#inner").replaceWith($("#inner", response));
});
И все нормально и работает как положено: возвращенные фрагменты html загружаются в DOM и скрипты запускаются.
Однако, когда я использую 1.4.2, я замечаю, что теги сценария были удалены и больше не выполняются.
Переход к более новой кодовой базе jquery дает строки кода (строка 4498):
ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
который, кажется, является виновником «удаления» сценария из его счастливого места отдыха как часть процесса селектора. Но это не помогает мне внедрять точно то, что я хочу, в DOM.
Любая идея, почему jquery делает это? Что еще более важно, как я могу исправить это, чтобы мои сценарии запускались?