Прочитайте javascript cookie по имени - PullRequest
27 голосов
/ 28 февраля 2011

Я установил cookie, используя

document.cookie = 
    'MYBIGCOOKIE=' + value + 
    '; expires=' + now.toGMTString() + 
    '; path=/';

Теперь на этом сайте установлено от 5 до 10 файлов cookie, есть ли способ проверить значение этого файла cookie по имени.

if (document.cookie.MYBIGCOOKIE == '1') {
    alert('it is 1')
}

Ответы [ 11 ]

0 голосов
/ 09 июля 2018

Вот пример реализации, которая сделает этот процесс бесшовным (Заимствовано из AngularJs)

var CookieReader = (function(){
var lastCookies = {};
var lastCookieString = '';

function safeGetCookie() {
    try {
        return document.cookie || '';
    } catch (e) {
        return '';
    }
}

function safeDecodeURIComponent(str) {
    try {
        return decodeURIComponent(str);
    } catch (e) {
        return str;
    }
}

function isUndefined(value) {
    return typeof value === 'undefined';
}

return function () {
    var cookieArray, cookie, i, index, name;
    var currentCookieString = safeGetCookie();

    if (currentCookieString !== lastCookieString) {
        lastCookieString = currentCookieString;
        cookieArray = lastCookieString.split('; ');
        lastCookies = {};

        for (i = 0; i < cookieArray.length; i++) {
            cookie = cookieArray[i];
            index = cookie.indexOf('=');
            if (index > 0) { //ignore nameless cookies
                name = safeDecodeURIComponent(cookie.substring(0, index));

                if (isUndefined(lastCookies[name])) {
                    lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));
                }
            }
        }
    }
    return lastCookies;
};
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...