«Хитрый» history.back(). Как правильно реализовать возврат в каталог, после просмотра нескольких товаров?

Имеется каталог с товарами. Так же, используется фильтр через адресную строку.

При переходе на товар есть возможность просматривать следующий и предыдущий товар.
Необходимо реализовать кнопку, по которой осуществляется возврат в каталог с учетом адресной строки с фильтром.
Если не просматриваем следующий/предыдущий товар, то history.back() отлично справляется, а вот когда смотрим — возврат происходит на товар, а в каталог. Если бы не было переменных в адресной строке — можно было бы просто на каталог вернуть.
  • Вопрос задан
  • 8100 просмотров
Решения вопроса 1
CrazySquirrel
@CrazySquirrel
Реализуйте следующий/предыдущий товары через document.location.replace()
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Сомнительный функционал, на самом деле. Я по нажатию «назад» хотел бы увидеть именно предыдущее состояние страницы, а не как не сразу страницу каталога, для этого обычно хлебные крошки служат.

Можно попробовать поискаться с History API, но сходу вменяемое решение предложить не могу. Разве что где-то держать колличество переходов с момента нужной страницы и делать history.go(-n);
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
А почему не сделать просто ссылку с правильным адресом, зачем хитрости с history.back?
Ответ написан
Комментировать
@zhdanov
В backbone есть кроссбраузерная реализация работы с историей.
Ответ написан
PaulZi
@PaulZi
А в сессии хранить значения параметров нельзя, и исходя из этого генерировать полный URL на кнопке (так даже без JS работать будет)
Ответ написан
Ваш ответ на вопрос

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

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