Несколько символов хэша в URL-адресе
Или, может быть, вы называете его "острым" - символом #.
Я столкнулся с одним экземпляром, где #! и #, используемые одновременно в одном URL-адресе. От чтения других статей, включая RFC, я не могу понять, является ли это юридической комбинацией или нет. При встрече с такой страницей браузер Mozilla (Iceweasel в этом случае) отображает URL-адрес как имеющий номер 2, в то время как Chrome отображает только один, но вскоре он умирает (вкладка, содержащая страницу, перестает отвечать на запросы и падает, но может быть не связана).
Теперь, мой вопрос: законно ли иметь как в одном URL-адресе, может быть, это законно и избыточно (должно быть нормировано), или это просто ошибка в браузере Mozilla? Итак, предположим, что я делаю запрос AJAX или пытаюсь перейти к истории браузера - что мне делать, если я столкнулся с этой ситуацией?
![double hash in url]()
RFC-3986: http://tools.ietf.org/html/rfc3986#section-3.4, который должен прояснить его... на всякий случай.
Также: https://developers.google.com/webmasters/ajax-crawling/docs/specification, как сканеры Google видят вещи.
Ответы
Ответ 1
Формат фрагмента допускает только слэши, вопросительные знаки и pchar
s. Если вы посмотрите на RFC, вы увидите, что метка hash не действительна pchar
.
Однако браузеры будут стараться читать недействительные URL-адреса, обрабатывая повторяющиеся хэши, как если бы они были экранированы, как вы можете видеть, проверив значение window.location.hash
(в IE, Firefox и Chrome) для
http://www.example.com/hey#foo#bar
который является тем же window.location.hash
для
http://www.example.com/hey#foo%23bar
Ответ 2
Это может быть законно, как упоминалось в описании. Но я бы избегал этого, если это не было необходимо, поскольку это может вызвать определенную путаницу в отношении URL-адреса.
Этот тип URL:
http://www.example.com/hey#foo#bar
Кажется, меня действительно сбивает с толку и будет еще более запутанным для обычных пользователей и, возможно, для поисковых систем.