Я использую 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 делает это? Что еще более важно, как я могу исправить это, чтобы мои скрипты работали?