Задать вопрос
sorry_i_noob
@sorry_i_noob

У меня пагинация сделана с помощью AJAX. Когда я хочу вернуться на прошлую страницу с помощью кнопки браузера «назад», это не работает. Как исправить?

Здравствуйте. Как мне исправить эту проблему?

Я так понял, что нужно использовать функцию
$(window).on('popstate', function (event) {...}
И в ней сверять текущий url (который получился после нажатия на кнопку "Назад" в браузере) с прошлым (до кнопки "Назад"). Если поменялись GET параметры, но сам url такой же (location.pathname), то выполнять ajax на сервер и получать item'ы, учитывая текущий GET параметр page (то есть, с нужным offset).
Но как получить прошлый url (до нажатия кнопки "Назад" в браузере)? Можно внести его в cookie, но ведь пользователь несколько раз может нажать кнопку "Назад" в браузере. Также, как и "Вперед".
Итак, вопрос - как получить прошлый url?
  • Вопрос задан
  • 346 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
History API
Добавление и изменение записей истории

Представьте страницу mozilla.org/foo.html, которая выполняет следующий JavaScript:

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

В этом случае адресная строка станет показывать mozilla.org/bar.html, но браузер не будет загружать страницу bar.html и даже проверять существует ли она.
Ответ написан
@Zevs91
Все просто, когда пользователь заходит в раздел постов с пагинацией Вам надо включить супер глобальный массив
$_SESSION['ajax_pagination'] = true; 
$_SESSION['ajax_pagination_page'] = 5//текущая страница

Когда пользователь нажмет на кнопку назад в браузере его перекидывает на страницу до того как он попал на страницу с постами и пагинацией
Вам надо будет в каждой php файле включить специальны обработчик для проверки активности $_SESSION['ajax_pagination'], если оно активна перекидывать его на страницу с постами и пагинациями и минус одну страницу из пагинаций
Ответ написан
kshshe
@kshshe
Frontend developer
Просто заведите переменную, в которой будете хранить последнее значение адреса. Адрес поменялся, сравнили, обработали, записали в эту переменную новое актуальное значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы