aleksand44
@aleksand44

Почему пропадают куки?

Всем привет. Решил написать свой скриптик по подмене номеров на сайте в зависимости от источника траффика. Проблема в том, что куки работают не должным образом и при переходе на другую страницу сайта, кука пропадает и подмена номеров тоже.
var url = window.location.href,  // читаем ссылку
	    phones = document.getElementsByClassName('ct_phone'),
	    button = document.getElementById('telephone');
	
	if(~url.indexOf("yclid")){ //определяем траффик с директа по идентификатору в ссылке
		var date = new Date;
		date.setDate(date.getDate() + 10); //назначаем дату истечения куки
		document.cookie = "source=yaDirect;expires="+ date.toUTCString(); //ставим куку
		
	}
	if(getCookie('source') == 'yaDirect'){ //если есть кука то подменяется номера
		
		button.setAttribute('href','tel:+74957683110');
		phones[0].innerHTML = '<a href="tel:+74957683110">+7 (495) 768-31-10</a>';
		phones[1].innerHTML = '<a href="tel:+74957683110">+7 (495) 768-31-10</a>';
	}
	
	function getCookie(name) { // скрипт чтения куки
		var matches = document.cookie.match(new RegExp(
		"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
	));
	return matches ? decodeURIComponent(matches[1]) : undefined;
	}
  • Вопрос задан
  • 1108 просмотров
Решения вопроса 1
aleksand44
@aleksand44 Автор вопроса
Проблема была в том, что по умолчанию кука действует только на той странице на которой была установлена и на всех вложенных.
То есть, если ты переходишь с рекламы в карточку товара, а потом на главную - она не работала.
Решается добавлением параметра path=/;, благодаря которому кука работает на всем сайте.
Исправленная строка
document.cookie = "source=yaDirect;expires="+ date.toUTCString() + ";path=/;";
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы