Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Cookies проблемы (https://javascript.ru/forum/events/54939-cookies-problemy.html)

soltx 07.04.2015 14:54

Cookies проблемы
 
Привет! Не могу понять причины почему код не работает? не записывает cookie если не нашел нужное имя

function getCookies() {
        var cookies = {}; 
        var all = document.cookie; 
        if (all === "") 
        return cookies; 
        var list = all.split("; ");
        for(var i = 0; i < list.length; i++) { 
            var cookie = list[i];
            var p = cookie.indexOf("="); 
            var name = cookie.substring(0,p); 
            var value = cookie.substring(p+1); 
            value = decodeURIComponent(value); 
            cookies[name] = value; 
        }
        return cookies;
    }

    var obj = getCookies();


    function checkCookies(obj, name){
        for ( var key in obj ) {
            if(key === name) {
                console.log(true);
            }else{
                console.log(false);
                setCookie("test", "true", 30);

            }
        }
    }

    checkCookies(obj, "test");

    function setCookie(name, value, daysToLive) {
        var cookie = name + "=" + encodeURIComponent(value);
        if (typeof daysToLive === "number")
            cookie += "; max-age=" + (daysToLive*60*60*24);
        document.cookie = cookie;
    }

soltx 08.04.2015 19:34

если вынести из условия
setCookie("test", "true", 30)
то всё работает, но задача состоит в том что бы проверить есть ли cookie? если нет то выполнить команду и записать cookie
------------------------------------------------------------------------------------
С плагином jquery получилось, но как то не хочется подгружать библиотеку и плагин

ksa 09.04.2015 09:01

Цитата:

Сообщение от soltx
Не могу понять причины почему код не работает? не записывает cookie если не нашел нужное имя

Просто потестируй свой код. Что тут не понятного? Проверь его пошагово и многое прояснится...

soltx 10.04.2015 23:57

Цитата:

Сообщение от ksa (Сообщение 365731)
Просто потестируй свой код. Что тут не понятного? Проверь его пошагово и многое прояснится...

Да увидел, перебор с условием не могу реализовать, запутался (
пока реализовал так:
function checkCookies(obj, name) {
            if (obj.hasOwnProperty(name)) {
                console.log('Есть cookie, ' +name+ ' ничего не делаем');
            }else{
                console.log('Нет cookie, ' +name+ ' сейчас запишем');
                setCookie("test", "true", 30);
            }
}


всё работает и вполне устраивает, но хотелось бы увидеть как реализовать при помощи цикла


Часовой пояс GMT +3, время: 21:17.