12 ответов:
посмотреть плагин:
https://github.com/carhartl/jquery-cookie
затем вы можете сделать:
$.cookie("test", 1);удалить:
$.removeCookie("test");кроме того, чтобы установить тайм-аут определенного количества дней (10 здесь) на куки:
$.cookie("test", 1, { expires : 10 });если параметр expires опущен, то файл cookie становится файлом cookie сеанса и удаляется при выходе из браузера.
чтобы охватить все варианты:
$.cookie("test", 1, { expires : 10, // Expires in 10 days path : '/', // The value of the path attribute of the cookie // (Default: path of page that created the cookie). domain : 'jquery.com', // The value of the domain attribute of the cookie // (Default: domain of page that created the cookie). secure : true // If set to true the secure attribute of the cookie // will be set and the cookie transmission will // require a secure protocol (defaults to false). });To прочитайте значение файла cookie:
var cookieValue = $.cookie("test");вы можете указать параметр path, если файл cookie был создан по другому пути к текущему:
var cookieValue = $.cookie("test", { path: '/foo' });обновление (апрель 2015):
как указано в комментариях ниже, команда, которая работала над оригинальным плагином, удалила зависимость jQuery в новом проекте (https://github.com/js-cookie/js-cookie), который имеет ту же функциональность и общий синтаксис, что и версия jQuery. По-видимому, оригинальный плагин никуда не денется.
нет необходимости использовать jQuery специально для управления файлами cookie.
С QuirksMode (включая экранирование символов)
function createCookie(name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else { expires = ""; } document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/"; } function readCookie(name) { var nameEQ = encodeURIComponent(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 decodeURIComponent(c.substring(nameEQ.length, c.length)); } return null; } function eraseCookie(name) { createCookie(name, "", -1); }посмотри
<script type="text/javascript"> function setCookie(key, value) { var expires = new Date(); expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } </script>вы можете установить куки, как
setCookie('test','1');вы можете получить печенье как
getCookie('test');надеюсь, что это поможет кому-то :)
EDIT:
если вы хотите сохранить путь куки для домашней страницы в одиночку, то сделайте это как
function setCookie(key, value) { var expires = new Date(); expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value +';path=/'+ ';expires=' + expires.toUTCString(); }спасибо, Вики
Вы можете использовать плагин доступен здесь..
https://plugins.jquery.com/cookie/
а потом написать куки делать
$.cookie("test", 1);чтобы получить доступ к набору cookie do
$.cookie("test");
вот мой глобальный модуль, который я использую -
var Cookie = { Create: function (name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } document.cookie = name + "=" + value + expires + "; path=/"; }, Read: function (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; }, Erase: function (name) { Cookie.create(name, "", -1); } };
убедитесь, что не сделать что-то вроде этого:
var a = $.cookie("cart").split(",");затем, если cookie не существует, отладчик вернет какое-то бесполезное сообщение, например ".cookie-это не функция".
всегда объявляйте сначала, затем сделайте разделение после проверки на null. Вот так:
var a = $.cookie("cart"); if (a != null) { var aa = a.split(",");
простой пример установки cookie в вашем браузере:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>jquery.cookie Test Suite</title> <script src="jquery-1.9.0.min.js"></script> <script src="jquery.cookie.js"></script> <script src="JSON-js-master/json.js"></script> <script src="JSON-js-master/json_parse.js"></script> <script> $(function() { if ($.cookie('cookieStore')) { var data=JSON.parse($.cookie("cookieStore")); $('#name').text(data[0]); $('#address').text(data[1]); } $('#submit').on('click', function(){ var storeData = new Array(); storeData[0] = $('#inputName').val(); storeData[1] = $('#inputAddress').val(); $.cookie("cookieStore", JSON.stringify(storeData)); var data=JSON.parse($.cookie("cookieStore")); $('#name').text(data[0]); $('#address').text(data[1]); }); }); </script> </head> <body> <label for="inputName">Name</label> <br /> <input type="text" id="inputName"> <br /> <br /> <label for="inputAddress">Address</label> <br /> <input type="text" id="inputAddress"> <br /> <br /> <input type="submit" id="submit" value="Submit" /> <hr> <p id="name"></p> <br /> <p id="address"></p> <br /> <hr> </body> </html>просто просто скопировать и использовать этот код для установки куки.
вы можете использовать библиотеку на веб-сайте Mozilla здесь
вы сможете установить и получить куки, как это
docCookies.setItem(name, value); docCookies.getItem(name);
Я думаю, что свежее дал нам хороший способ, но есть ошибка:
<script type="text/javascript"> function setCookie(key, value) { var expires = new Date(); expires.setTime(expires.getTime() + (value * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } </script>вы должны добавить "значение" рядом с getTime (); в противном случае срок действия файла cookie истечет немедленно :)
вот как вы устанавливаете cookie с помощью jQuery:
ниже код был взят из https://www.w3schools.com/js/js_cookies.asp
function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; }теперь вы можете получить куки с функцией ниже:
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 ""; }и, наконец, вот как вы проверяете куки:
function checkCookie() { var username = getCookie("username"); if (username != "") { alert("Welcome again " + username); } else { username = prompt("Please enter your name:", ""); if (username != "" && username != null) { setCookie("username", username, 365); } } }если вы хотите удалить файл cookie, просто установите параметр expires на переданную дату:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
Я думал Pichamani Премответ был самым простым и чистым. Просто добавив к нему возможность установить количество дней до истечения срока действия:
EDIT: также добавлена опция "никогда не истекает", если номер дня не установлен
function setCookie(key, value, days) { var expires = new Date(); if (days) { expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } else { document.cookie = key + '=' + value + ';expires=Fri, 30 Dec 9999 23:59:59 GMT;'; } } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; }установите cookie:
setCookie('myData', 1, 30); // myData=1 for 30 days. setCookie('myData', 1); // myData=1 'forever' (until the year 9999)
$.cookie("test", 1); //set cookie $.cookie("test"); //get cookie $.cookie('test', null); //delete cookie
Comments