Всем привет. Пытаюсь написать простой одностраничный скрипт для отображения трёх страниц по хешам, с обработкой нажатия на сервисную кнопку и системную кнопку "назад". Чтобы с каждой страницы можно было просто вернуться на главную, без хождения по всей истории.
Есть главная страница и от неё на втором уровне ещё две страницы. Условно: Главная -> О нас и Главная -> Контакты. На страницах О нас и Контакты есть собственные кнопки назад.
Как правильно реализовать переходы и историю переходов с помощью windows.history?
Пробовал так:
С главной страницы, по нажатию на ссылоку (О нас) генерю событие
history.pushState({ hash: this.currentHash, "about" }, null);
В обработчике сервисной и системной кнопки Назад пишу
history.replaceState({ hash: '#home' }, null);
Очевидно, что это не подходит.
Если кнопку Назад обрабатывать через
history.pushState({ hash: '#home' }, null);
То, потом будет перематываться вся история посещений, а не просто возврат на главную страницу.
Подскажите, пожалуйста, как сделать правильно?
P.S. хочу сделать это без роутеров, для собственного опыта.