Вы можете дать контекст? Это в форме действия? Просто отображается на странице?
jprofitt
@ user470184 Я не голосовал против, но учел. По этой проблеме уже есть тонна информации по SO.
Чарльз Спрейберри,
«Общее поведение» все еще довольно расплывчато. Вам интересно что-то вроде <p>www.testurl.com/test?param1=test&current=true</p>или <a href="www.testurl.com/test?param1=test&current=true">linky</a>?
jprofitt
@ jprofitt <a href="www.testurl.com/test?param1=test¤t=true"> linky </a>
blue-sky
Ответы:
127
& HTML для «Начало ссылки на символ».
& это ссылка на символ для "амперсанда".
¤t; не является стандартной символьной ссылкой и поэтому является ошибкой (браузеры могут попытаться выполнить восстановление после ошибки, но вы не должны зависеть от этого).
Если вы использовали ссылку на настоящий символ (например ™), тогда она (™) появится в URL-адресе вместо нужной строки.
(Обратите внимание, что в зависимости от версии HTML, которую вы используете, вам, возможно, придется заканчивать ссылку на символ ;, поэтому &trade=она будет рассматриваться как ™. HTML 4 позволяет опускать его, если следующий символ не является словесным ( например =), но в некоторых браузерах (Hello Internet Explorer) с этим возникают проблемы).
Итак, цель здесь - избежать проблем, когда вы пытаетесь проверить свой сайт. Таким образом, вы должны заменить свои амперсанды на &при написании URL-адреса в разметке.
Обратите внимание, что замена &на & выполняется только при написании URL-адреса в HTML, где "&"используется специальный символ (вместе с «<» и «>»). При написании того же URL-адреса в текстовом сообщении электронной почты или в адресной строке браузера вы должны использовать"&" and not "&". С HTML, браузер переводит "&"к "&"таким веб - сервер будет видеть только "&"
и не "&"в строке запроса запроса.
Это отличный пример. Когда ¤tанализируется в текстовый узел, он преобразуется в ¤t. При синтаксическом разборе значения атрибута оно анализируется как¤t .
Если вы хотите ¤tв текстовом узле, вы должны написать &currentв своей разметке.
<p>www.testurl.com/test?param1=test&current=true</p>
или<a href="www.testurl.com/test?param1=test&current=true">linky</a>
?Ответы:
&
HTML для «Начало ссылки на символ».&
это ссылка на символ для "амперсанда".¤t;
не является стандартной символьной ссылкой и поэтому является ошибкой (браузеры могут попытаться выполнить восстановление после ошибки, но вы не должны зависеть от этого).Если вы использовали ссылку на настоящий символ (например
™
), тогда она (™) появится в URL-адресе вместо нужной строки.(Обратите внимание, что в зависимости от версии HTML, которую вы используете, вам, возможно, придется заканчивать ссылку на символ
;
, поэтому&trade=
она будет рассматриваться как ™. HTML 4 позволяет опускать его, если следующий символ не является словесным ( например=
), но в некоторых браузерах (Hello Internet Explorer) с этим возникают проблемы).источник
HTML не распознает,
&
но распознает,&
потому что он равен&
в HTMLЯ просмотрел этот пост, который кто-то написал: http://www.webmasterworld.com/forum21/8851.htm
источник
Мой источник: http://htmlhelp.com/tools/validator/problems.html#amp
Это неверно:
Пояснение:
Итак, цель здесь - избежать проблем, когда вы пытаетесь проверить свой сайт. Таким образом, вы должны заменить свои амперсанды на
&
при написании URL-адреса в разметке.Надеюсь это поможет : )
источник
Это отличный пример. Когда
¤t
анализируется в текстовый узел, он преобразуется в¤t
. При синтаксическом разборе значения атрибута оно анализируется как¤t
.Если вы хотите
¤t
в текстовом узле, вы должны написать&current
в своей разметке.Кровавые подробности здесь: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
источник
если вы делаете строку символов. делать:
источник
&
в HTML, а не&
в URL.