Я пытаюсь перенаправить пользователей без перезагрузки страницы. Поэтому, если пользователь нажимает на <a href="#link1">
он должен перенаправить на #link2
.
Проблема в том, что если я использую location.hash="link2"
, он добавляет 2 записи в историю, чего я не хочу, потому что когда пользователь нажимает кнопку "Назад", она переходит в link1
, а затем перенаправляется на link2
, поэтому пользователь в принципе не может вернуться без открытия списка посещенных страниц.
И если я использую location.replace
, он перезагружает всю страницу с сервера, чего я тоже не хочу.
Кто-нибудь может перенаправить пользователя без добавления новой записи истории?
Я не хочу использовать replaceState
из-за обратной совместимости с браузерами, которые не поддерживают HTML5. Я также не хочу использовать что-то вроде event.preventDefault()
чтобы пользователи могли event.preventDefault()
ссылку на ссылку в своем браузере, и она будет работать одинаково.
Я думаю, что вы ищете window.history.replaceState.
Вы также можете просто обработать событие onclick с помощью JavaScript и jQuery и прокрутить до якоря без запуска браузера. Вот пример с .animate()
jQuery .animate()
для плавной прокрутки
location.hash
как событие ссылки по клику?#link2
?