#html #node.js
#HTML #node.js
Вопрос:
У меня есть некоторый текст, который включает HTML-теги (пример: «Это <p>
тег»). Как мне отобразить этот текст «как есть» без того, чтобы моя страница NodeJS интерпретировала тег как реальный тег « <p></p>
«?
Если я использую объекты amp;<
и amp;>
HTML, объекты не интерпретируются и отображаются следующим образом («Это amp;<pamp;>
тег»), чего я не хочу.
Комментарии:
1. Как бы вы это сделали в HTML?
2. Если вы имеете в виду использование node.js в качестве http-сервера (без какой-либо платформы) по умолчанию используется текстовая печать, но если вы хотите явно установить для нее значение text, вы можете задать тип содержимого. Но я подозреваю, что вы имеете в виду какой-то другой вариант использования, не могли бы вы быть более конкретными?
3. Это строка, которую я показываю, где ‘group.title’ — это переменная, которой присвоен «Это
<p>
тег». ‘<p class=»title»><a href=»javascript:void(0)» id=»‘ group._id ‘»>’ group.title ‘</a></p>` Я использую express.4. Попробуйте этот обходной путь, он должен сработать:
<code>This is a <p> tag</code>
. Эта проблема связана с тем, как express экранирует свои переменные, хотя я думаю, что может быть лучшее решение.5. Нет. Извините — он все еще интерпретирует
<p>
тег. Хотя спасибо за идею!
Ответ №1:
Я не знаком с конкретным способом создания HTML-страниц в Node, но если вы используете язык шаблонов, такой как Jade или EJS, вы можете отключить экранирование следующим образом:
В Jade:
p.title
a(href='javascript:void(0)' id='#{group._id}') !{group.title}
В EJS:
<p class='title'>
<a href="javascript:void(0)" id="<%= group._id %>"><%- group.title %></a>
</p>
Комментарии:
1. Это сработало как нельзя лучше — спасибо! Я использую Handlebars, который имеет эквивалентный метод управления экранированием.