Для чего используется & amp - PullRequest
71 голосов
/ 31 января 2012

Есть ли разница в поведении нижеуказанного URL.

Я не знаю, почему вставляется &, это имеет какое-то значение?

www.testurl.com/test?param1=test&current=true

против

www.testurl.com/test?param1=test&current=true

Ответы [ 5 ]

91 голосов
/ 31 января 2012

& - это HTML для «Начало ссылки на символ».

& - это ссылка на символ «Амперсанд».

&current; не является стандартным символомссылка и так же является ошибкой (браузеры могут попытаться выполнить восстановление после ошибки, но вы не должны зависеть от этого).

Если вы использовали ссылку на символ для реального символа (например, ™), то это (™)будет отображаться в URL-адресе вместо нужной вам строки.

(Обратите внимание, что в зависимости от используемой версии HTML, вам может потребоваться завершить ссылку на символ ;, поэтому &trade=будет обрабатываться как ™. HTML 4 позволяет опускать его, если следующий символ не является символом (например, =), но некоторые браузеры (Hello Internet Explorer) имеют проблемы с этим).

3 голосов
/ 31 января 2012

HTML не распознает &, но распознает &, потому что оно = & в HTML

Я просмотрел этот пост, который кто-то написал: http://www.webmasterworld.com/forum21/8851.htm

2 голосов
/ 31 января 2012

Мой источник: http://htmlhelp.com/tools/validator/problems.html#amp

Другая распространенная ошибка возникает при включении URL-адреса, содержащего амперсанд ("&"):

Это недопустимо:

a href = "foo.cgi? Chapter = 1§ion = 2 © = 3 & lang = ru"

Объяснение:

ЭтоВ примере выдается ошибка для «секции неизвестного объекта», поскольку предполагается, что "&" начинает ссылку на объект.Браузеры часто безопасно восстанавливаются после такого рода ошибок, но в некоторых случаях возникают реальные проблемы.В этом примере многие браузеры правильно преобразовывают © = 3 в © = 3, что может привести к сбою ссылки.Поскольку ⟨является HTML-объектом для левой угловой угловой скобки, некоторые браузеры также преобразуют & lang = en в 〈= en.И один старый браузер даже находит сущность §, преобразуя §ion = 2 в §ion = 2.

Таким образом, цель здесь состоит в том, чтобы избежать проблем, когда вы пытаетесь проверить свой веб-сайт.Таким образом, вы должны заменить свои амперсанды на & при написании URL в вашей разметке.

Обратите внимание, что замена & на &amp;выполняется только при написании URL-адреса в HTML, где "&" - специальный символ (наряду с «<» и «>»).При написании того же URL-адреса в текстовом сообщении электронной почты или в строке адреса браузера вы должны использовать "&", а не "&amp;".С помощью HTML браузер переводит "&amp;" в "&", поэтому веб-сервер будет видеть только "&", а не "&amp;" в строке запроса.

Надеюсь, это поможет:)

0 голосов
/ 01 февраля 2019

, если вы делаете строку символов. сделать:

let linkGoogle = 'https://www.google.com/maps/dir/?api=1'; 
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];


aNav.href = linkGoogle + origin;
0 голосов
/ 31 января 2012

Это отличный пример. Когда &current анализируется в текстовый узел , он преобразуется в ¤t. При разборе на значение атрибута оно анализируется как &current.

Если вы хотите &current в текстовом узле, вы должны написать &amp;current в вашей разметке.

Подробности здесь: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference

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