Получите специальные скидки на yandex.ru на товары для активного образа жизни в магазине Desport. . https://youngspace.ru/novosti/kak-dostavit-cvety-zimoy-ne-povrediv-ih


/* 06.09.2005 */

URL в ссылках и амперсанд (&) - Is Valid HTML?

Автор: Цыгырлаш Игорь (06.09.2005)

Вчера написал небольшую статью о параметрах в протоколе "mailto", который мы указываем для создания ссылки на email- адрес, и как всегда проверил страницу на соответствие стандартам с помощью валидатора W3C, но что это ...

Амперсанды (&) в URL

Валидатор белым по красному сообщает: This page is not Valid HTML 4.01 Strict!.

А все дело было в том, что у одной из ссылок в URL атрибута href, параметры разделялись самим символом "&". Сокращенно это выглядело вот так:

<a href="mailto:?subject=Feedback&body=Hello">...</a>

Вы можете спросить: "Ну, а чем же они, интересно, должны разделяться?". А ответ достаточно прост: Если Вы хотите использовать символ амперсанд (&) в вашем документе, Вы должны закодировать его как "&amp;" (даже в URL!).

Таким образом правильный вариант выглядит так:

<a href="mailto:?subject=Feedback&amp;body=Hello">...</a>

За этим не всегда удается уследить конечно, но для этого и существует валидатор.

Так, а в чем собственно проблема?

Почему нельзя просто писать "&"?

Все дело в HTML сущностях, или как их ещё называют, мнемониках (&quot; &nbsp; &lt; &gt; &euro; ...). Мнемоники начинаются с символа амперсанд "&", который зарезервирован специально для мнемоник. Поэтому, когда встречается амперсанд, то это должно быть началом мнемоники. Хотя браузеры, конечно, не раздувают из этого проблему, и в большинстве случаев вы получите то, что ожидали. Но это не повод делать НЕПРАВИЛЬНО.

Также учтите, что заменять амперсанд "&" на мнемонику "&amp;" следует только в HTML документах, где он является специальным символом (также как и "<" и ">"). Когда же вы набираете URL в адресной строке браузера или указываете ссылку в письме, которое представлено как простой текст (plain text), то писать нужно именно "&".

И на последок. Когда вы кликаете ссылку в HTML документе, то браузер преобразует "&amp;" в "&" и сервер получит строку запроса с символом "&".


-> Обсудить статью в форуме
Получите специальные скидки на yandex.ru на товары для активного образа жизни в магазине Desport. . https://youngspace.ru/novosti/kak-dostavit-cvety-zimoy-ne-povrediv-ih
<- Назад к списку статей
•> MAILTO: взгляд вглубь и вширь...
<• Аббревиатуры и акронимы в HTML