Backurl на js

2k
Алексей,
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;
	});
}

Код приведен для примера, возможно его необходимо доработать :)

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 15 октября 2017
юзабилити, делаюИМ, идея
Поделиться
Похожие статьи
Смс-оповещения о заказе через собственный смартфон
Зачем платить сервису по рассылке смс, если почти в каждом тарифе мобильной связи включены пакеты см...
Читать дальше » 0
Алексей,
Как сделать ИМ дружелюбнее. E-mail уведомления
Наверно это касается всех интернет-магазинов на 1С-Битрикс. Делаешь заказ и понеслось: заказ оформле...
Читать дальше » 0
Алексей,
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Сохраняем данные фильтра, сортировки, номер страницы - при переходе на детальную страницу и возвращаем пользователя обратно ничего не растеряв.