Backurl на js
Сохраняем данные фильтра, сортировки, номер страницы - при переходе на детальную страницу и возвращаем пользователя обратно ничего не растеряв.
Идея в следущем: перед переходом на детальную страницу сохраняем в куку текущий URL, а при возврате подставляем этот URL. Реализация простая и нервы у юзеров целее.
Для начала обрабатываем ссылки на детальную страницу, добавляя data-backurl:
<a data-backurl="<?=htmlspecialcharsbx($APPLICATION->GetCurPageParam())?>" href="<?=$arItem['DETAIL_PAGE_URL']?>">Читать</a>
Далее на детальной странице (откуда будем возвращать) добавляем ссылке класс backurl-link
<a class="backurl-link" href="<?=$arResult["FOLDER"].$arResult["URL_TEMPLATES"]["news"]?>">Вернуться к списку</a>
И в общие скрипты сайта добавляем js код, который и будет обрабатывать клики по этим ссылкам
function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } $(document).ready(function() { $('a[data-backurl]').on('click', function (event) { href = $(this).attr('href'); backurl = $(this).data('backurl'); document.cookie = 'backurl='+backurl+'; path=/'; return true; }); $('.backurl-link').on('click', function(event){ backurl = getCookie('backurl'); if (backurl != null) { document.location.href = backurl; return false; } return true; }); }
Код приведен для примера, возможно его необходимо доработать :)
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.