Могу ли я положиться на амперсанд без экранирования и корректное отображение в текстовой области? - PullRequest
1 голос
/ 17 мая 2011

Я только что заметил в нашем коде подпрограмму, которая неправильно экранирует амперсанд в текстовой области:

<textarea>Arts & Crafts</textarea>

Что удивляет меня, это то, что работает в каждом браузере, который я проверяю. Есть ли неписаное правило об амперсандах внутри текстовых областей? Если так, то это правило, от которого я могу зависеть? Или это просто удобство, которое предоставляют браузеры, чтобы убедиться, что ваша неисправная страница отображается, и никаких гарантий нет?

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Большинство браузеров пытаются исправить ошибки, допущенные на странице.Амперсанд не может означать ничего, кроме амперсанда, поэтому он показан как таковой.В качестве альтернативы можно было бы пропустить амперсанд или вообще не отображать страницу, но все поставщики считают этот запасной вариант наиболее логичным.

Это создаст проблемы, когда текст, например, <textarea>Use &egrave; to show an è</textarea>, потому что при этом &egrave; будет отображаться как è.Таким образом, в этом случае амперсанд должен быть экранирован.

Это, однако, одна из очень немногих ошибок, которые решаются одинаково в любом браузере.Лучше не делать никаких ошибок.Это даст вам наибольшие шансы на успех.;)

0 голосов
/ 17 мая 2011

Это просто удобство;автономный & является недопустимым HTML и XHTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...