@AleDv

Как сделать навигацию с помощью history?

Всем привет. Пытаюсь написать простой одностраничный скрипт для отображения трёх страниц по хешам, с обработкой нажатия на сервисную кнопку и системную кнопку "назад". Чтобы с каждой страницы можно было просто вернуться на главную, без хождения по всей истории.

Есть главная страница и от неё на втором уровне ещё две страницы. Условно: Главная -> О нас и Главная -> Контакты. На страницах О нас и Контакты есть собственные кнопки назад.

Как правильно реализовать переходы и историю переходов с помощью windows.history?

Пробовал так:

С главной страницы, по нажатию на ссылоку (О нас) генерю событие
history.pushState({ hash: this.currentHash, "about" }, null);


В обработчике сервисной и системной кнопки Назад пишу

history.replaceState({ hash: '#home' }, null);

Очевидно, что это не подходит.

Если кнопку Назад обрабатывать через
history.pushState({ hash: '#home' }, null);

То, потом будет перематываться вся история посещений, а не просто возврат на главную страницу.

Подскажите, пожалуйста, как сделать правильно?

P.S. хочу сделать это без роутеров, для собственного опыта.
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы