@pup_pupets

Как запустить jQuery-скрипт, пришедший с сервера?

$.ajax отправляет запрос на сервер, используя dataType: script и GET. Ответ приходит в виде:
$("#items").html('<tag>....</tag>');

Вопрос: как запустить пришедший ответ? Т.е. отдал скрипт сервер и как его запустить у клиента?

Пробовал eval - не получилось.
  • Вопрос задан
  • 2459 просмотров
Пригласить эксперта
Ответы на вопрос 4
mlnkv
@mlnkv
JavaScript Developer
если скрипт приходит с сервера, то у вас уже что то не так (если только это не сервис типа jsbin.com/), а вообще в jQuery есть $.getScript( url [, success ] )
Ответ написан
jakulov
@jakulov
У меня работал такой вариант
<textarea id="script_buffer" style="display:none;"></textarea>
<script>
function scriptBuffer() {
        var sb = document.getElementById('script_buffer');
	if (sb.value) {
		var script = sb.value;
		sb.value = '';
		eval(script);
	}
}
</script>

При получении ответа записывать его в textarea и потом вызывать функцию scriptBuffer;
Ответ написан
@Snewer
Если приходит
$("#items").html('<tag>....</tag>');
то можно распарсить данную строку, достать #items и соответствующий ему html код, и выполнить его
$(selector).html(html);
Ответ написан
Комментировать
Вообще, в таких случаях принято использовать JSONP. jQuery с ним отлично умеет работать. Нужно только в dataType передать 'jsonp'. Так что, если есть возможность модифицировать backend, то это лучший вариант.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы