Предотвратить jQuery от экранирования html-объектов
У меня есть простой редактор html. Скажем, что следующие типы пользователей:
<p>Ok, this just & sucks :) –</p>
и сохраняется в некоторой переменной:
var content = "<p>Ok, this just & sucks :) –</p>";
Теперь, где-то я использую jQuery для добавления этого текста к некоторому элементу:
$(this).html(content); // where content is the string above
Проблема заключается в том, что он экранирован:
<p>Ok, this just &amp; sucks :) &ndash;</p>
Как добиться точной строки с помощью & и – а также иметь < и не < потому что мне нужны html-теги?
Изменить: добавлена дополнительная информация
Ответы
Ответ 1
Проблема заключается не в том, что jQuery ускользает от объектов. Я думаю, если вы используете console.log для записи строки content
, вы увидите, что ваш редактор возвращает вам экранированные объекты.
Вся точка .html()
vs .text()
заключается в том, что .html()
для HTML, который будет рассматриваться как HTML.
Ответ 2
Я думаю, вы хотите, чтобы
текст <p>Ok, this just &amp; sucks :) &ndash;</p>
должен быть точно показан без преобразования, так что &
и ndash;
не будут преобразованы в &
и -
, а затем используйте:
$(this).text(content);
Одна из проблем заключается в том, что content
будет добавлен как текст на сайте элемента this
. Он не создает элемент p
и добавляет его в this
.
Но если вы хотите применить эффект преобразования, тогда вы должны работать.
Еще одна вещь, которую я хочу упомянуть,. Я считаю, что язык не единственный, связанный с этим преобразованием. Браузер выполняет основную роль в этих случаях. SO, Что бы мы ни делали в script, если браузер получит еще один шанс проверить содержимое, он преобразует их в &
и -
.