Есть ли разница в поведении указанного ниже URL.
Я не знаю, зачем &
вставлен, какая разница?
www.testurl.com/test?param1=test&current=true
против
www.testurl.com/test?param1=test¤t=true
Есть ли разница в поведении указанного ниже URL.
Я не знаю, зачем &
вставлен, какая разница?
www.testurl.com/test?param1=test&current=true
против
www.testurl.com/test?param1=test¤t=true
<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-адреса, содержащего амперсанд ("&"):
Это неверно:
a href = "foo.cgi? chapter = 1 & section = 2 & copy = 3 & lang = en"
Пояснение:
В этом примере возникает ошибка для «раздела неизвестной сущности», поскольку
"&"
предполагается, что с нее начинается ссылка на сущность. Браузеры часто безопасно восстанавливаются после такого рода ошибок, но в некоторых случаях действительно возникают проблемы. В этом примере многие браузеры правильно конвертируют & copy = 3 в © = 3, что может привести к сбою ссылки. Поскольку ⟨- это HTML-объект для левой угловой скобки, некоторые браузеры также преобразуют & lang = en в 〈= en. И один старый браузер даже находит объект §, преобразовывая & section = 2 в §ion = 2.
Итак, цель здесь - избежать проблем, когда вы пытаетесь проверить свой сайт. Таким образом, вы должны заменить свои амперсанды на &
при написании URL-адреса в разметке.
Обратите внимание, что замена
&
на&
; выполняется только при написании URL-адреса в HTML, где"&"
используется специальный символ (вместе с «<» и «>»). При написании того же URL-адреса в текстовом сообщении электронной почты или в адресной строке браузера вы должны использовать"&"
and not"&"
. С HTML, браузер переводит"&"
к"&"
таким веб - сервер будет видеть только"&"
и не"&"
в строке запроса запроса.
Надеюсь это поможет : )
Это отличный пример. Когда ¤t
анализируется в текстовый узел, он преобразуется в ¤t
. При синтаксическом разборе значения атрибута оно анализируется как¤t
.
Если вы хотите ¤t
в текстовом узле, вы должны написать &current
в своей разметке.
Кровавые подробности здесь: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
если вы делаете строку символов. делать:
let linkGoogle = 'https://www.google.com/maps/dir/?api=1';
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];
aNav.href = linkGoogle + origin;
&
в HTML, а не &
в URL.