Почему <textarea>отображает <> вместо <>? - PullRequest
2 голосов
/ 21 сентября 2011

Разве текстовая область браузера не должна отображать необработанный текст?Посмотрите на следующие снимки из этого поста и обратите внимание на тег <script>:

1 - Мы видим угловые скобки вокруг слова сценария:

We can see the angled brackets around the script word

2 - Теперь посмотрите на источник страницы.Мы можем видеть, что угловые скобки представлены их HTML-сущностями:

We can see the angled brackets are represented by their HTML entities

3- Нажмите, чтобы изменить сообщение, и вы увидите, что угловые скобки видны в текстовой области.-НЕТ их сущности HTML:

We can see the angled brackets are visible in the textarea--NOT their HTML entities

4- Посмотрите на ответ XHR от сервера (когда мы нажали edit), мы можем видеть сущности HTML, а НЕ угловые скобки, которые мысм. в текстовой области:

We can see the HTML entities and NOT the angled brackets we see in the textarea

Как возможно, что текстовая область - при редактировании сообщения - отображает угловые скобки, а не их объекты HTML?Разве текстовые области не должны отображать необработанный текст?Я попробовал это на своем сайте, и текстовое поле показывает сущности HTML, а не скобки, с идентичным исходным кодом.

Страница поста также показывает угловые скобки, даже если они находятся внутри code и preтеги.Разве они не должны выводиться в виде необработанного текста тоже?Я также попробовал это на своем сайте, и на странице отображаются объекты HTML, а не угловые скобки.

Что мне здесь не хватает?

Я спрашиваю, потому что борюсь с реализацией функциина моем сайте.Я хочу показать людям закодированные объекты, когда они собираются что-то редактировать, но я хочу сохранить необработанную версию.Так что, кажется, сделал, но я понятия не имею, как.

1 Ответ

4 голосов
/ 21 сентября 2011

См. Символьные данные и разметку и рассмотрите секции CDATA в HTML (взгляните на DTD , хотя обратите внимание, что этого недостаточно для полного описания HTML).

Элементы scriptstyle) имеют такое обозначение CDATA, а textarea - нет.Сохраняйте данные как они («неэкранированные»), но убедитесь, что они зашифрованы в HTML-код за пределами разделов CDATA в HTML (и даже внутри, позаботьтесь о том, чтобы защититься от ограничителей, таких как </anything - символы < и /должны быть отделены, чтобы быть полностью законным в HTML).Подробнее см. CDATA против PCDATA .

Счастливое кодирование.

...