eucalipt
@eucalipt
Самоделкин.

Как правильнее вставить в JS код длинный блок html кода?

Здравствуйте. AJAX запрос посылается на сервер и скрипт авторизует человека на моем сайте. Ответ возвращается как JSON (Object {login: "login", avatar: "default.jpg", rights: "0", confirm: "0", error: null}). Собственно, что нужно сделать. Как только ответ пришел и скрипт определил, что он положительный,
if (answ.error == 0) {
  // мой код
}

мне нужно показать блок в шапке сайта, вместо кнопки входа. Вот его HTML:
<div id="home-button">
						<span class="ava" style="background: url('/images/avatars/$avatar'); background-size: cover;"></span>
					</div>
					<ul>
						<div>
							<li><a href="/">Профиль<span data-background="fontbg-home"></span></a></li>
							<li><a href="/articles">Стать автором<span data-background="fontbg-articles"></span></a></li>
							<li><a href="/examples">Избранное<span data-background="fontbg-examples"></span></a></li>
							<div></div>
							<li><a href="/signin">Настройки<span data-background="fontbg-signin"></span></a></li>
							<li><a href="http://codeinroad.tk/account/exit/?location=$currentLocation">Выход<span data-background="fontbg-signup"></span></a></li>
...


На PHP такие вещи я делаю при помощи такого синтаксиса:
print <<<ANDY
					<div id="home-button">
                                        ...
ANDY;


Можно ли воспользоваться чем-нибудь подобным в JS?

P.S. Для вставки использую
$("#header > section:last-child").html(answ.login);

но, как видите, так получается просто вставить возвращенный логин. А нужно целый блок кода, чтобы все красивенько отображалось.
  • Вопрос задан
  • 3681 просмотр
Пригласить эксперта
Ответы на вопрос 2
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Проще сделать этот блок невидимым и показывать после выполнения авторизации пользователя.
if (answ.error == 0) {
  $('#кнопкаВхода').hide();
  $('#home-button').show();
}

Ну или ответом на AJAX может быть HTML :-) Но вариант с изначально существующим блоком лучше, т.к. он (блок) все равно будет на странице.
Ответ написан
@mayorovp
Поместите нужный фрагмент html в блок script с типом данных, отличным от javascript. Например,
<script type="text/template">
</script>


Такой тэг будет проигнорирован любым браузером - а вы сможете получить его содержимое в своем скрипте.
Ответ написан
Ваш ответ на вопрос

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

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