jQuery.replaceWith не принимает <script>тегов - PullRequest
4 голосов
/ 14 ноября 2011

У меня есть ответ AJAX, который содержит HTML, включая <script> элементы.

Этот HTML должен заменить существующий элемент, но когда я использую:

$(element).replaceWith($(response))

Я теряю теги сценария из него ...

Как я могу вставить HTML точно так, как он отправлен?

Ответы [ 3 ]

2 голосов
/ 14 ноября 2011

Будет возвращена строка !!

$.get("ajax.php")
     .success(function(returningHtmlString) {
          $(element).replaceWith(returningHtmlString);
     });
1 голос
/ 14 ноября 2011

Этот код взят из примера приложения Facebook.Вставьте <div id="fb-root"></div> в ваш документ.Код требует jQuery для загрузки скрипта.В вашем случае замените //connect...../all.js 'на элементы <script>.

(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
0 голосов
/ 16 июня 2017

См. jQuery.parseHTML( data [, context ] [, keepScripts ] )

Следующее должно работать

var content = jQuery.parseHTML(response, document, true)
$(element).replaceWith(content)
...