Установка файла 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 3

2 ответа:

Несколько вещей здесь:

function SetCookie() {
    var url = window.location.search;
    if(url.indexOf('?src=uni') !== -1)
        document.cookie="src=uni";
}

1) Используйте location.search, чтобы сузить свой диапазон, не обязательно, но меньше места для ошибок,

2) использовать !== -1, чтобы проверить indexOf Метод. indexOf возвращает "-1" если он не найдет совпадения. И еще "0" если он находит совпадение в начале строки. Строка имеет "нулевой индекс", что означает, что первый символ в строке находится в позиции "0".

3) Добавьте знак равенства = вместе с именем параметра.: 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