2011-09-21 3 views
2

Не следует ли отображать текст в текстовом поле браузера? Посмотрите на следующие защелками из this post, и обратить внимание на <script> тегу:Почему <textarea> дисплей <> вместо < >?

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 с сервера (когда мы нажали редактировать), мы можем увидеть HTML-сущности, а не угловые скобки, которые мы видим в текстовое поле:

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

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

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

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

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

ответ

4

См. Character Data and Markup и рассмотрите CDATA sections в HTML (обратите внимание на DTD, хотя обратите внимание, что этого недостаточно, чтобы полностью описать HTML).

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

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

Смежные вопросы