AJAX-ссылок не обнаружено:посетил
Я замечаю, что стили a:visited
не работают со ссылками, которые запрашиваются через JavaScript. Однако при стандартном клике пользователя точно такая же ссылка регистрируется как посещенная, как сразу, так и при последующих обновлениях. Я не уверен, является ли это уникальным для jQuery Mobile (где я впервые столкнулся с ним) или это ограничение браузера, о котором я не знал?
5 ответов:
Вероятно, вам нужно изменить местоположение.хэш, если вы хотите, чтобы он работал с историей и стилизацией посещенных ссылок.
Имейте в виду, что стиль посещенных ссылок работает несколько несогласованно между браузерами после того, как уязвимость конфиденциальности истории посещенных ссылок стала популярной на вы смотрели порно веб-сайт.
a:visited
соответствует любой ссылке, которая указывает на URL-адрес в истории браузера.Если вы используете AJAX для отмены навигации по URL-адресу, этот URL никогда не появится в истории браузера.
Это можно исправить с помощью ссылок
#
.
a:visited
срабатывает только в том случае, если ссылка "выполнена".Ссылка на вызов AJAX обычно возвращает 'false' (решение с хэшем (
<a href="#">link</a>
) все равно возвращает false, иначе пользователь перескочил бы в начало страницы).Таким образом, ссылка никогда не "выполняется", поэтому не помечается как посещенная.
Хорошо, пожалуйста, не меняйте
a
элементhref
, чтобы указать на хэшированный url, как говорят другие ответчики - это нарушит пользовательский опыт. Если они хотят, чтобы открыть в новом окне, то это будет нужно, чтобы удвоить нагрузку, если вы делаете изменение на стороне сервера это сломает поисковые системы и JS-отключенных пользователей.Проблема в том, что если вы используете хэши для обновления вашего сайта до RIA (rich internet application), то ссылки будут указывать на
mysite.com/page
, но вы на самом деле получаете доступ кmysite.com/#/page
, поэтому вы на самом деле не посещайте оригинал.Правильным решением здесь является использование HTML5 History API, который позволяет изменять URL напрямую и подключаться к изменениям URL (поэтому больше нет необходимости в хэшах). Вы можете прочитать больше о плюсах и минусах hashes vs hashbangs vs HTML5 History API здесь: https://github.com/browserstate/history.js/wiki/Intelligent-State-Handling - он также включает в себя пример кода для обновления вашего сайта с помощью HTML5 History API тоже.
JQuery Mobile планируется использовать для HTML5 History API в будущем (он в настоящее время работает), но пока я бы предложил подождать, пока это будет реализовано.