&, &, & Все ведут себя аналогично в HTML.Как и почему? - PullRequest
2 голосов
/ 24 марта 2012
P&G  
P&ampG  
P&G 

Все это одно и то же.Разве использование специальных сущностей только для javascript / url?

Ответы [ 3 ]

6 голосов
/ 24 марта 2012

Они не означают одно и то же.

P&G содержит неопределенную ссылку на сущность &G, как скажет вам валидатор.Браузеры делают с такими ссылками то, что к ним относятся буквально.Если браузеры начинают распознавать новые объекты, могут происходить странные вещи.И они делают это сейчас, так как добавляются сущности в соответствии с черновиками HTML5 .Между прочим, &G среди них нет.

P&ampG - довольно похожий случай, за исключением того, что некоторые браузеры с испорченными парсерами могут неправильно воспринимать часть &amp как значение символа &.1013 *P&G - правильная запись, обозначающая P & G.

Это не имеет ничего общего с JavaScript и не имеет ничего общего с URL-адресами, равно как и с содержанием HTML-документа в целом.Амперсанды часто нужны в URL, но это не делает проблему вопросом URL.Код JavaScript часто пишется внутри элемента script, где могут применяться специальные правила синтаксического анализа, в зависимости от версии HTML, но это зависит от модели содержимого элемента.(Элемент style является аналогичным случаем.)

1 голос
/ 24 марта 2012

Нет. Даже HTML их не понимает, и поэтому они называются специальными символами.

Однако современные браузеры исправляют это для вас. (пример коррекции современных браузеров):

Создайте документ с расширением .htm | .html и сохраните в документе после ввода <h1>hi!</h1>. Вы сможете увидеть заголовок. что должно быть не так ... (вернуться к теме)

Есть сотни этих маленьких присосок. но главное, старайся следовать стандарту так:

  1. помогает вашему коллеге лучше понять ваш код.
  2. только потому, что ваш браузер позволяет вам это делать, это старое оправдание.
  3. вы можете попасть в беду, даже не вспомнив, как?
  4. читайте об этом в полной ссылке или http://www.w3schools.com/tags/ref_entities.asp

Если вы попытаетесь написать <>10<20<> в браузере, он покажет вам, как если бы новый современный браузер, если старый, кто знает, что произойдет?

1 голос
/ 24 марта 2012

Для достижения наилучших результатов вы всегда должны использовать полную форму &amp;.Точка.

Хорошо, за исключением сред с типом контента CDATA.В HTML это будут такие элементы, как <script>, <style>, <xmp>, <listing> и так далее.В XHTML, только в явных блоках CDATA, разделенных <![CDATA[ .. ]]>.

Если вы не напишите ссылку полностью, не все браузеры будут отображать ее так, как вы хотите, и выможет возникнуть проблема позже, если вы случайно напишите что-то вроде «выберите © и вставьте».

...