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
юзабилити, делаюИМ, идея

Возврат к списку

Комментарии