Я работаю над сайтом (переделка, вероятно, более подходящее слово, так как изначально я его не создавал), и столкнулся со следующим странным сценарием:
Пользователи переходят на страницу, которая показывает список текущих событий. Это называется «что по».
Я добавил ссылку на эту страницу, которая переводит пользователей в полный календарь событий на месяц в обычном формате календаря. Эта страница называется «календарь событий». Оказавшись на странице, они также могут выбрать, какой месяц они хотят видеть и какой тип событий они интересуют.
Пользователи могут щелкнуть событие, указанное в любой дате, чтобы перейти на страницу с подробной информацией о событии. (страница — это детали события с запросом, который извлекает соответствующее событие.) Я добавил кнопку назад на страницу под списком событий, которая вернет их в календарь, показывающий месяц и результаты поиска, которые они только что просмотрели. Никаких проблем — я использую PHP $ _SERVER [‘HTTP_REFERER’], и это работает отлично.
Вот в чем проблема — если я только что сделал ссылку back () или history.go (-1) на эту кнопку, он полностью возвращает пользователя к «whats-on». То же самое происходит, когда вы нажимаете кнопку возврата браузера. Он просто полностью пропускает «календарь событий».
По-видимому, это происходит на сайте при других сценариях, таких как списки предприятий и поиски.
Очевидно, что я не хочу такого поведения — я хочу, чтобы кнопка «Назад» переходила на ранее просмотренную страницу, как и должна !!
Я не могу придумать в коде ничего такого, что могло бы вызвать это, но разработчики оригинального сайта включили целую кучу пакетов JQuery, таких как jQuery UI, и мне интересно, может ли что-то мешать поведению кнопки возврата по умолчанию. Это вообще возможно ??
Наверное, я хочу знать, что есть какой-нибудь код JQuery, который бы изменил поведение кнопки «назад», чтобы я мог выследить и убить ее !!
Просто ищу идеи о том, где начать искать.
Видимо, единственный способ заставить его работать — это манипулировать историей браузера, используя
history.pushState({}, '', 'event-calendar?<plus whatever query was used to pull the data>');
на самой странице календаря.
Кажется, это работает, но какой глупый обходной путь. Хотел бы я найти оригинальную проблему.
Других решений пока нет …