Установка файла Cookie на основе параметра url
Мне нужно установить куки всякий раз, когда пользователь переходит по одной из наших партнерских ссылок и попадает на наш сайт с "src=uni" в URL. URL-адреса будут выглядеть примерно так:
Http://www.myadmin.com?src=uni&utm_source=uni&utm_content=[publisher_ID]
Функция для создания файлов cookie:
function SetCookie() {
var url = window.location.href;
if(url.indexOf('?src' + uni) = 1)
document.cookie="QueryCookie";
}
Может ли кто-нибудь помочь мне, сообщив, где я ошибаюсь в создании этого файла Cookie на основе параметров запроса?
2 ответа:
Несколько вещей здесь:
function SetCookie() { var url = window.location.search; if(url.indexOf('?src=uni') !== -1) document.cookie="src=uni"; }
1) Используйте
location.search
, чтобы сузить свой диапазон, не обязательно, но меньше места для ошибок,2) использовать
3) Добавьте знак равенства!== -1
, чтобы проверитьindexOf
Метод.indexOf
возвращает "-1" если он не найдет совпадения. И еще "0" если он находит совпадение в начале строки. Строка имеет "нулевой индекс", что означает, что первый символ в строке находится в позиции "0".=
вместе с именем параметра.:src=
. 4) Кроме того, используйте строку "uni", если это то, что вы ищете, а не переменную с именемuni
. Если " src " может быть множеством значений, то нам нужно будет добавить еще немного логики, чтобы объяснить это.5) и при назначении
document.cookie
используйте пары ключ/значение, как в:key=value
.
Первое, что вам нужно исправить, это:
if(url.indexOf('?src' + uni) = 1)
Должно быть (это проверяет, что он существует в индексе 1):
if(url.indexOf('?src=' + uni) === 1)
Или (это проверяет, существует ли он вообще)
if(url.indexOf('?src=' + uni) !== -1)
Далее, вам нужно установить src в uni и сделать его доступным для всего сайта:
document.cookie="src="+uni+"; path=/; domain=.myadmin.com";
Добавление пути= / и domain=.myadmin.com позволит вам получить доступ к файлу cookie по всем путям в этом домене, а доменная часть позволит получить доступ ко всем поддоменам (т. е. www.myadmin.com а также blog.myadmin.com, и т.д.)
Итак, все вместе:
function SetCookie() { var url = window.location.href; if(url.indexOf('?src='+uni) !== -1) document.cookie="src="+uni+"; path=/; domain=.myadmin.com"; }
Вот некоторые основные сведения:
Http://www.w3schools.com/js/js_cookies.asp
Или более подробная, точная документация:
Https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie