Отримайте файли cookie по імені


362

У мене є отримувач, щоб отримати значення від файлу cookie.

Зараз у мене є 2 куки за назвою shares=та за ім'ям obligations=.

Я хочу зробити це отримувачем лише для отримання значень із печива зобов’язань.

Як це зробити? Тож forрозбиває дані на окремі значення і ставить їх у масив.

 function getCookie1() {
    // What do I have to add here to look only in the "obligations=" cookie? 
    // Because now it searches all the cookies.

    var elements = document.cookie.split('=');
    var obligations= elements[1].split('%');
    for (var i = 0; i < obligations.length - 1; i++) {
        var tmp = obligations[i].split('$');
        addProduct1(tmp[0], tmp[1], tmp[2], tmp[3]);
    }
 }

Чи є якась смола, а не просто зробити її масивом?
webLacky3rdClass

перетворюючи файл cookie на масив, я мушу сказати.
webLacky3rdClass

Ні, як я міг це зробити?


Можливо, ви захочете прийняти відповідь: ваше запитання все ще позначене як без відповіді.
Солей - Матьє Превот

Відповіді:


499

Одним із підходів, який дозволяє уникнути повторення масиву, буде:

function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}

Покрокова інструкція

Розбиття рядка за токеном буде створювати або масив з однією рядком (однакове значення), якщо маркер не існує в рядку, або масив з двома рядками, якщо маркер знайдеться в рядку.

Перший (лівий) елемент - це рядок того, що було до маркера, а другий (праворуч) - це рядок того, що було після маркера.

(ПРИМІТКА: у випадку, якщо рядок починається з маркера, перший елемент є порожнім рядком)

Враховуючи, що файли cookie зберігаються наступним чином:

"{name}={value}; {name}={value}; ..."

щоб отримати певне значення файлу cookie, нам просто потрібно отримати рядок, який знаходиться після "; {name} =" і перед наступним ";". Перш ніж проводити будь-яку обробку, ми додаємо рядок cookie з ";", щоб кожне ім'я файлу cookie, включаючи перше, було додане до ";" та "=":

"; {name}={value}; {name}={value}; ..."

Тепер ми можемо спочатку розділити на "; {name} =", і якщо маркер знайдений у рядку файлів cookie (тобто у нас є два елементи), ми закінчимо, що другим елементом буде рядок, що починається з нашого значення cookie. Потім ми витягуємо це з масиву (тобто pop) і повторюємо той самий процес, але тепер із ";" як маркер, але цього разу витягуючи ліву рядок (тобто зсув), щоб отримати фактичне значення лексеми.


13
@ user3132564 спробував це відредагувати, але насправді це коментар: Цей метод повертає неправильне значення під час пошуку суфіксу файлу cookie - якщо значення document.cookie є "FirstName = John", і ви називаєте getCookie ("Ім'я" "), ви отримаєте" Джон ", навіть не маючи файлу cookie під цим іменем. Він також не працює, якщо ім'я одного файлу cookie є суфіксом іншого - якщо document.cookie є "Name = John; LastName = Doe", виклик split ("Name =") повертає масив з трьома рядками, а метод doesn ' t повернути потрібне значення для getCookie ("Ім'я").
Денніс Джахеруддін

20
Попередження про реалізацію у цій відповіді: якщо є більше одного файлу cookie з тим самим іменем, значення cookie не повертається. Наприклад, якщо для доменів .stackexchange.com, а також programmers.stackexchange.com є кукі з назвою stackToken, а також programmers.stackexchange.com, тоді, якщо ви будете викликати getCookie ("stackToken"), жодне значення не буде повернуто - деталь.length буде більше 2. якщо ви знаєте , все значення куки для того ж імені (але інший домен і шлях) буде такою ж, см обслуговується відповідь тут: stackoverflow.com/questions/5639346 / ...
jlpp

7
@DennisJaheruddin - Схоже, виправлена ​​проблема з суфіксом.
Натан JB

2
@ NathanJ.Brauer ви маєте рацію. Оновлено цю проблему давно, але робив примітку лише в журналі змін, а не в коментарях.
kirlich

в цьому є вина. Якщо файл cookie "ім'я" і підкреслено в іншому подібному імені, IE 10+також видає помилку. Наприклад: "user": "Joe", "user_name":"Doe"
BOZ

176

Я вважаю за краще використовувати одне відповідне регулярне вираження на файлі cookie:

window.getCookie = function(name) {
  var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
  if (match) return match[2];
}

АБО Також ми можемо використовувати як функцію, перевірте нижче код.

function check_cookie_name(name) 
    {
      var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
      if (match) {
        console.log(match[2]);
      }
      else{
           console.log('--something went wrong---');
      }
   }

Покращено завдяки Скотту Юнгвірту в коментарях.


11
Це може мати помилкові збіги, якщо два файли cookie мають один і той же суфікс. Він буде відповідати як xyz=valueі abcxyz=valueколи name = xyz.
Brent Washburne

3
unescape((document.cookie.match(key + '=([^;].+?)(;|$)') || [])[1] || '');Модифікована версія Glize / dom / Cookies
Валентин Підкаменний

19
оновіть Regex, щоб new RegExp('(^| )' + name + '=([^;]+)')уникнути проблеми, порушеної @BrentWashburne. Також я зробив тест на jsperf для цього і відповідь з найвищими голосами, цей виходить трохи згори, але, безумовно, менше коду і простіший за ним: jsperf.com/simple-get-cookie-by-name
Скотт Юнгвірт

5
@ScottJungwirth Так, але тоді ви повинні оновити оператор return, щоб повернути відповідність [2];
Джо

@ScottJungwirth Чому б і ні new RegExp('(^|;)' + name + '=([^;]+)')? За nameспиною початку рядка або крапки з комою, чому пробіл ``?
червень

89

використовувати сценарій отримання файлів cookie:

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

тоді зателефонуйте:

var value = readCookie('obligations');

я вкрав код вище зі сторінки cookie-файлів quirksmode. ви повинні прочитати його .


7
... які вкрали код у W3schools. Ого. w3schools.com/js/js_cookies.asp
WillWam

Гей, принаймні я дав кредит: p також як ти знаєш, що один був оригіналом?
mkoryak

Як правило, можна припустити, що W3S поставив його там першим. У них багато новачок, котрі ctrl-c кодують.
WillWam

Насправді це схоже на те, що це навпаки :) Quirksmode є / був чудовим сайтом для вигадок у браузері, і там також є джерело. scottandrew.com
sunn0

я люблю w3schools. мабуть, найкраща платформа для літніх людей
Ральф Дінгус

56

Якщо ви використовуєте jQuery, я рекомендую вам використовувати цей плагін:

https://github.com/carhartl/jquery-cookie
https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js

<script type="text/javascript"
 src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js">

Отже, ви можете читати печиво так:

var value = $.cookie("obligations");

Також ви можете написати cookie:

$.cookie('obligations', 'new_value');
$.cookie('obligations', 'new_value', { expires: 14, path: '/' });

Видалити файл cookie:

$.removeCookie('obligations');

1
Не впевнений, чому це насправді не визнано найкращою відповіддю. Так, його jQuery, а не javascript, але в той же час це !!!!
Cozzbie

21
@Cozzbie, ймовірно, включає зовнішню бібліотеку (тим самим додаючи ще один http-запит), щоб просто отримати значення файлу cookie - це щось непотрібне надмірне знищення.
rahulserver

Я отримую помилку "Uncaught ReferenceError: $ не визначено" у "$ .cookie". Хоча я включив усі необхідні бібліотеки, такі як jquery.min.js, та бібліотеку, запропоновану у цій відповіді.
Адарш Сінгх

44

Методи деяких інших відповідей, які використовують регулярний вираз, не охоплюють всіх випадків, зокрема:

  1. Коли печиво є останнім файлом cookie. У цьому випадку не буде крапки з комою після значення файлу cookie.
  2. Коли інше ім’я файлу cookie закінчується тим, що ім'я шукається. Наприклад, ви шукаєте файл cookie з назвою "one", а там є cookie з назвою "done".
  3. Коли ім'я файлу cookie включає символи, які не інтерпретуються як самі, коли вони використовуються у регулярному виразі, якщо їм не передує зворотна косої риски.

Наступний метод вирішує ці випадки:

function getCookie(name) {
    function escape(s) { return s.replace(/([.*+?\^${}()|\[\]\/\\])/g, '\\$1'); };
    var match = document.cookie.match(RegExp('(?:^|;\\s*)' + escape(name) + '=([^;]*)'));
    return match ? match[1] : null;
}

Це повернеться null якщо файл cookie не буде знайдено. Він поверне порожню рядок, якщо значення файлу cookie порожнє.

Примітки:

  1. Ця функція передбачає, що назви файлів cookie залежать від регістру .
  2. document.cookie- Коли це відображається в правій частині завдання, воно представляє рядок, що містить розділений куточкою список файлів cookie, які, в свою чергу, є name=valueпарами. Здається, що після кожної крапки з комою є один пробіл.
  3. String.prototype.match()- Повертається, nullколи не знайдено відповідності. Повертає масив, коли знайдено збіг, а елемент в індексі [1]- це значення першої групи, що відповідає.

Примітки щодо регулярного вираження:

  1. (?:xxxx) - утворює невідповідну групу.
  2. ^ - відповідає початку рядка.
  3. | - відокремлює альтернативні зразки для групи.
  4. ;\\s* - відповідає одній напівкрапці з двома символами пробілів.
  5. = - відповідає одному знаку рівності.
  6. (xxxx) - утворює групу, що відповідає.
  7. [^;]*- відповідає нулю або більше символів, окрім напівколонки. Це означає, що він буде відповідати символам до напівкрапки або до кінця рядка.

4
Ця відповідь - найкраща та найкоротша функція, яка працює у всіх випадках без помилкових збігів. Він також має найкраще пояснення, як це працює. Однак функція скасування не пояснюється, і я думаю, що якби автор створив файл cookie, він би знав, чи потрібно ім'я уникати чи ні. Тому я вважаю за краще коротшу функцію:function getCookie(name) { var match = document.cookie.match(RegExp('(?:^|;\\s*)' + name + '=([^;]*)')); return match ? match[1] : null; }
Джефф Бейкер

Якщо це буде загальний інструмент, він повинен або уникати імені, або видаляти помилку, якщо ім'я не вдається вставити безпосередньо в регулярний вираз. Люди, які знають обмеження їх застосування, можуть зняти втечу чи охорону.
Джо Лапп

31

Через 4 роки ES6 простіша версія.

function getCookie(name) {
  let cookie = {};
  document.cookie.split(';').forEach(function(el) {
    let [k,v] = el.split('=');
    cookie[k.trim()] = v;
  })
  return cookie[name];
}

Я також створив суть, щоб використовувати його як Cookieпредмет. наприклад,Cookie.set(name,value) іCookie.get(name)

Це читає всі файли cookie замість того, щоб просканувати. Це добре для невеликої кількості печива.


23

Я змінив функцію, яку Джонатан надав тут, використовуючи регулярний вираз, ви можете отримати значення файлу cookie за його назвою, як це:

function getCookie(name){
    var pattern = RegExp(name + "=.[^;]*")
    var matched = document.cookie.match(pattern)
    if(matched){
        var cookie = matched[0].split('=')
        return cookie[1]
    }
    return false
}

Якщо він повертає порожню рядок, це означає, що файл cookie існує, але не має значення, якщо він повертає помилковим, то cookie не існує. Я сподіваюся, що це допомагає.


Просто цікаво, чому ви не користувалися varна лінії 3? matched = ...
Вікторіо Берра

Вибачте про це, забув це написати.
Mohyaddin Alaoddin

14

Ось один вкладиш для отримання файлу cookie з певним іменем без необхідності зовнішньої вкладки:

var cookie = ("; "+document.cookie).split("; YOUR_COOKIE_NAME=").pop().split(";").shift();

Ця відповідь ґрунтується на блискучому рішенні кірліха . Єдиний компроміс цього рішення полягає в тому, що ви отримаєте порожню рядок, коли файл cookie не існує. У більшості випадків це не повинно бути розірвачем угод.


10

Я знаю, що це старе питання, але я також натрапив на цю проблему. Тільки для запису, на веб-сторінці розробників mozilla є трохи API .

Yoy може отримати будь-яке печиво на ім'я, використовуючи лише JS. Код також чистіший IMHO (крім довгого рядка, який я впевнений, що ви можете легко виправити).

function getCookie(sKey) {
    if (!sKey) { return null; }
    return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
}

Як зазначено в коментарях, майте на увазі, що цей метод передбачає, що ключ і значення були кодовані за допомогою encodeURIComponent (). Видаліть декодування & encodeURIComponent (), якщо ключ і значення файлу cookie не були закодовані.


1
Потрібно пам’ятати, що метод передбачає, що ім'я та значення файлу cookie були закодовані encodeURIComponent()під час встановлення файлу cookie, що буде істинним, якщо ви використовуєте супутню функцію для встановлення файлу cookie, але це не завжди може бути так. тест
John S

@JohnS Ми могли просто видалити декодуванняURICкомпонент, правда? (Якби ми не використовували його для встановлення файлу cookie?) Чи все-таки він працюватиме?
NiCk Newman

Так, щойно видалили decodeURI і цей регулярний вираз є монстром. Дякую Марку, проголосував!
NiCk Newman

10

Ви можете використовувати js-cookie бібліотеку для отримання та встановлення файлів cookie JavaScript.

Додайте до свого HTML:

<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

Щоб створити файл cookie:

Cookies.set('name', 'value');

Щоб прочитати файл cookie:

Cookies.get('name'); // => 'value'

8

Ось досить коротка версія

 function getCookie(n) {
    let a = `; ${document.cookie}`.match(`;\\s*${n}=([^;]+)`);
    return a ? a[1] : '';
}

Зауважте, що я використав рядки шаблонів ES6, щоб скласти вираз регулярного вираження.


2
Найкраща відповідь відтепер. Використовує функції ES6. 2017 рік, і люди все ще використовують var, +щоб об'єднатися тощо.
Еліас Соарес

@EliasSoares У чому проблема використання var?
mrReiha


Не проблема, але використання let - це хороша практика, оскільки вона має переваги в багатьох ситуаціях, і майже не має недоліків
Elias Soares

7

Використовуйте object.defineProperty

За допомогою цього ви можете легко отримати доступ до файлів cookie

Object.defineProperty(window, "Cookies", {
    get: function() {
        return document.cookie.split(';').reduce(function(cookies, cookie) {
            cookies[cookie.split("=")[0]] = unescape(cookie.split("=")[1]);
            return cookies
        }, {});
    }
});

Відтепер ви можете просто робити:

alert( Cookies.obligations );

Це також автоматично оновиться, тому якщо ви зміните файл cookie, він Cookiesтакож зміниться.


2
Ідеально! за винятком того, що він не буде працювати для об’єктів, які мають деякі символи, як тире (як назви файлів cookie), а при розбитті об’єктів спочатку залишається порожнє місце, тому я йду cookies[(cookie.split("=")[0]).replace(/ /g,'')] = ... Дякую!!
Самуель Ель

@Samuel Elh правильно, але ви також можете використовувати .trim () замість заміни (/ / g, '')
mtizziani

7

Кірліх дав вдале рішення. Однак він не вдається, коли є два значення файлу cookie з подібними іменами, ось просте виправлення цієї ситуації:

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length >= 2) return parts.pop().split(";").shift();
}

6

завжди працює добре:

function getCookie(cname) {
    var name = cname + "=",
        ca = document.cookie.split(';'),
        i,
        c,
        ca_length = ca.length;
    for (i = 0; i < ca_length; i += 1) {
        c = ca[i];
        while (c.charAt(0) === ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) !== -1) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function setCookie(variable, value, expires_seconds) {
    var d = new Date();
    d = new Date(d.getTime() + 1000 * expires_seconds);
    document.cookie = variable + '=' + value + '; expires=' + d.toGMTString() + ';';
}

Ніяких вимог до jQuery чи нічого. Чистий старий хороший JavaScript.


6
function getCookie(name) {
    var pair = document.cookie.split('; ').find(x => x.startsWith(name+'='));
    if (pair)
       return pair.split('=')[1]
}

6

Проста функція отримання файлу cookie з ім'ям cookie:

function getCookie(cn) {
    var name = cn+"=";
    var allCookie = decodeURIComponent(document.cookie).split(';');
    var cval = [];
    for(var i=0; i < allCookie.length; i++) {
        if (allCookie[i].trim().indexOf(name) == 0) {
            cval = allCookie[i].trim().split("=");
        }   
    }
    return (cval.length > 0) ? cval[1] : "";
}

6

Мабуть, MDN ніколи не чув про клас символів граничного регулярного виразів \b, який відповідає суміжному, \w+який обмежений з обох боків \W+:

getCookie = function(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : null;
};

var obligations = getCookie('obligations');

5

Мені здається, ви могли розділити пари ключа-значення файлів cookie на масив і базувати свій пошук на цьому:

var obligations = getCookieData("obligations");

Який працює наступним чином:

function getCookieData( name ) {
    var pairs = document.cookie.split("; "),
        count = pairs.length, parts; 
    while ( count-- ) {
        parts = pairs[count].split("=");
        if ( parts[0] === name )
            return parts[1];
    }
    return false;
}

Fiddle: http://jsfiddle.net/qFmPc/

Або, можливо, навіть наступне:

function getCookieData( name ) {
    var patrn = new RegExp( "^" + name + "=(.*?);" ),
        patr2 = new RegExp( " " + name + "=(.*?);" );
    if ( match = (document.cookie.match(patrn) || document.cookie.match(patr2)) )
        return match[1];
    return false;
}

1
чи існує метод використання document.cookie.indexOf (ім'я) та порівняння?

@AndrejHefner Ви могли б хоч і відповідати підрядкам. Отже, якщо у вас було ім'я файлу cookie "foobar" та одне ім'я "bar", ви можете сплутати "bar" у "foobar" з клавішею "bar".
Сампсон

@AndrejHefner Перегляньте наступний метод, який повинен бути швидшим, оскільки він перевіряє рядок на відповідність.
Сампсон

1
Другий метод має помилку, в якій він не знайде останнє значення файлу cookie, оскільки завжди шукає; в кінці. Корекційна версія буде:function getCookieData( name ) { var patrn = new RegExp( "(?:^| )" + name + "=(.*?)(?:;|$)" ); if ( match = (document.cookie.match(patrn) )) return match[1]; return false; }
Оз Соломон

5

У своїх проектах я використовую наступну функцію для доступу до файлів cookie по імені

function getCookie(cookie) {
    return document.cookie.split(';').reduce(function(prev, c) {
        var arr = c.split('=');
        return (arr[0].trim() === cookie) ? arr[1] : prev;
    }, undefined);
}

4

Якщо вам просто потрібно перевірити, чи існує певний файл cookie, просто зробіть це:

document.cookie.split('logged=true').length == 2

якщо cookie logged = true існує, ви отримаєте 2, якщо не 1.

logged = true - змінити це на ім'я файлу cookie = значення або просто ім'я


1
Хіба це не було б легше читати .indexOf() >= 0натомість?
Вік Седублеєв

3

Тут вже є приємні відповіді на отримання файлу cookie. Однак ось моє власне рішення:

function getcookie(cookiename){
var cookiestring  = document.cookie;
var cookiearray = cookiestring.split(';');
for(var i =0 ; i < cookiearray.length ; ++i){ 
    if(cookiearray[i].trim().match('^'+cookiename+'=')){ 
        return cookiearray[i].replace(`${cookiename}=`,'').trim();
    }
} return null;
}

використання: `

     getcookie('session_id');
   // gets cookie with name session_id

3

встановлено через JavaScript

document.cookie = 'cookiename=tesing';

отримати за допомогою jquery за допомогою плагіна jquery-cookie

var value = $.cookie("cookiename");

alert(value);

@cytsunny - це тому, що для цього вам потрібно мати плагін файлу cookie jquery.
Алекс Стендіфорд

Вау .... яка важлива інформація відсутня раніше .... Але за наданим вами посиланням, схоже, власник бібліотеки вирішив, що вони краще усунуть залежність від jquery.
cytsunny


2

Моє рішення таке:

function getCookieValue(cookieName) {
    var ca = document.cookie.split('; ');
    return _.find(ca, function (cookie) {
        return cookie.indexOf(cookieName) === 0;
    });
}

Ця функція використовує функцію Underscorejs _.find. Повертається невизначено, якщо ім'я файлу cookie не існує


2

Я зробив це так. так що я отримую об'єкт для доступу до відокремлення значень. З цим u може передавати файли cookie батькові, а потім ви можете отримати доступ до своїх значень за ключами, як

var cookies=getCookieVal(mycookie);
alert(cookies.mykey);
function getCookieVal(parent) {
            var cookievalue = $.cookie(parent).split('&');
            var obj = {};
            $.each(cookievalue, function (i, v) {
                var key = v.substr(0, v.indexOf("="));
                var val = v.substr(v.indexOf("=") + 1, v.length);

                obj[key] = val;

            });
            return obj;
        }  

1

Функціональний підхід для пошуку існуючих файлів cookie. Він повертає масив, тому він підтримує декілька однойменних входжень. Він не підтримує часткове узгодження ключів, але тривіально замінити === у фільтрі на регулярний вираз.

function getCookie(needle) {
    return document.cookie.split(';').map(function(cookiestring) {
        cs = cookiestring.trim().split('=');

        if(cs.length === 2) {
            return {'name' : cs[0], 'value' : cs[1]};
        } else {
            return {'name' : '', 'value' : ''};
        }
    })
    .filter(function(cookieObject) { 
        return (cookieObject.name === needle);
    });
}

1

Просто використовуйте наступну функцію (чистий код JavaScript)

const getCookie = (name) => {
 const cookies = Object.assign({}, ...document.cookie.split('; ').map(cookie => {
    const name = cookie.split('=')[0];
    const value = cookie.split('=')[1];

    return {[name]: value};
  }));

  return cookies[name];
};

1

Отримайте файл cookie за іменем, просто переведіть ім'я файлу cookie на функцію нижче

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

0

Наступна функція поверне key-valueпару необхідного файлу cookie, де keyім'я файлу cookie та valueбуде значенням cookie.

/**
 * Returns cookie key-value pair
 */
var getCookieByName = function(name) {
    var result = ['-1','-1'];
    if(name) {
        var cookieList = document.cookie.split(';');
        result = $.grep(cookieList,function(cookie) { 
            cookie = cookie.split('=')[0];
            return cookie == name;
        });
    }
    return result;
};

0

Приклад файлів cookie: приклад JS:

document.cookies = {
   create : function(key, value, time){
     if (time) {
         var date = new Date();
         date.setTime(date.getTime()+(time*24*60*60*1000));
         var expires = "; expires="+date.toGMTString();
     }
     else var expires = "";
     document.cookie = key+"="+value+expires+"; path=/";
   },
   erase : function(key){
     this.create(key,"",-1);
   },
   read : function(key){
     var keyX = key + "=";
     var ca = document.cookie.split(';');
     for(var i=0;i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
          if (c.indexOf(keyX) == 0) return   c.substring(keyX.length,c.length);
     }
     return null;
   }
}

Зберігайте масиви та об’єкти з json або xml

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.