Если сравнивать JavaScript и его библиотеку jQuery, то Cookies в нативном JavaScript реализованы так же неудобно, как и сам язык. Они хранятся в неудобном виде и проще подключить маленький сторонний плагин и пользоваться комфортным решением.
Подключение JS-COOKIE
Это плагин с открытым исходным кодом, который можно спокойно использовать в любом проекте. Вы можете скачать файлы с аккаунта разработчика или подключить через CDN
GitHub: https://github.com/js-cookie/js-cookie
Я предпочитаю использовать CDN. Подключаем jQuery и JS-Cookie
<!-- Remember to include jQuery :) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<!-- jQuery Cookies -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/latest/js.cookie.min.js"></script>
Методы JS-Cookie
Плагин крайне прост и состоит из трех одинаковых по конструкции методов: добавления, получения и удаления куков.
Получить Cookies
// Получить все куки
Cookies.get();
// Получить куки с конкретным именем
Cookies.get('cookiename');
// Получить куки для конкретного домена
Cookies.get('cookiename', { domain: 'website.name' })
// Примеры
//Функция, ускоряющая получение cookies
function get_cc(name){
// не забываем возвращать данные
return Cookies.get('name');
}
//Получаем куки через функцию
var a = get_cc('cookie1');
Записать Cookies
Запись производится для конкретного имени Cookie, поэтому пустого метода быть не может и он всегда содержит минимум два параметра
// Получить куки с конкретным именем
Cookies.set('name', 'data');
// записать куки на 3 дня
Cookies.set('name', 'data' {expires: 3});
// записать куки для конкретного домена на 3 дня
Cookies.set('name', 'data' {domain: 'website.name', expires: 3});
// записать куки для конкретной страницы на 3 дня
Cookies.set('name', 'data' {path: 'index.html', expires: 3});
// Примеры
//Функция, ускоряющая запись cookies
function set_cc(name, data){
Cookies.set(name, data);
}
//Задаем переменные и вызываем функцию в любом месте
var a = 'cookiesname',
b = 'cookiesdata';
set_cc(a, b);
Удалить Cookies
Удаление реализовано так же, как и получение. Метод принимает название куки и удаляет ее.
// Удалить все куки
Cookies.remove();
// Удалить куки с конкретным именем
Cookies.remove('cookiename');
// Удалить куки для конкретного домена
Cookies.remove('cookiename', { domain: 'website.name'})
Комментарии