Casa
Plugin cookie per jQuery.
Set-Cookie: <name>=<value>[; <name>=<value>]... [; expires=<date>][; domain=<domain_name>] [; path=<some_path>][; secure][; httponly]
-
- равно .codeguru.ru, установленные cookie будут отсылаться серверу при запросе документов с сайтов, расположенных на доменах web.codeguru.ru, forum.codeguru.ru, и.т.д. При этом дополнительным условием отсылки cookie будет являться проверка значения атрибута path — см. далее. domain весьма полезен. Он может использоваться, например, для организации единой системы аутентификации пользователя для различных web-сервисов, расположенных на различных поддоменах. Например, на основном сайте и на форуме сайта. Во избежание неконтролируемой отсылки cookie, значение
-
-
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
jQuery.cookie = function(){ var url = location.href; // путь для устанавливаемых кук this.cookieID = "cookie"; // имя для переменной, которая будет содержать наши куки this.set = function(options){ // Функция для установки кук var cookieContent = ''; // инициализируем переменную для цикла for var filterProperties = {"cookieID":0,"set":1,"get":2}; // создаем объект с известными значениями options = options || {}; // если переданы пользовательские переменные, используем их. По умолчанию ничего не устанавливаем for(var property in this){ // перебираем все элементы полученного объекта if(!(property in filterProperties)){ // вытягиваем все элементы кроме тех, которые содержатся в filterProperties if (this[property] === null) this[property] = ''; // если имеем ноль заменяем на '' cookieContent += (property) + ':' + (this[property]) + ','; // записываем имя переменной + значение переменной } } cookieContent = cookieContent.substring(0,cookieContent.length-1); // удаляем последнюю запятую var expires = ''; // инициализируем переменную if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { // если у нас есть какое ли значение то var date; // создаем переменную для даты if (typeof options.expires == 'number') { // если это число date = new Date(); // текущую дату date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); // устанавливаем время } else { date = options.expires; // пустое значение; куки будут храниться до конца сессии } expires='; expires='+ date.toUTCString(); // устанавливаем время жизни кук } var path = options.path ? '; path=' + (options.path) : ''; // устанавливаем url для которых действительны устанавливаемые куки var domain = options.domain ? '; domain=' + (options.domain) : ''; // устанавливаем мия сайта var secure = options.secure ? '; secure' : ''; // указываем, следует ли шифровать данные или нет document.cookie = [this.cookieID, '=',encodeURIComponent(cookieContent), expires, path, domain, secure].join(''); // делаем из массива строку и записываем ее в куки return true; }; this.get = function(){ // функция для получения кук var cookieValue = ''; if (document.cookie && document.cookie != '') { // если куки доступны и существуют var cookies = document.cookie.split(';'); // разбили и получили массив for (var i = 0; i < cookies.length; i++) { // выполняем перебор массива var cookie = jQuery.trim(cookies[i]); // обрезали все отступы if (cookie.substring(0, this.cookieID.length + 1) == (this.cookieID + '=')) { // находим слово cookie cookieValue = decodeURIComponent(cookie.substring(this.cookieID.length + 1)); // выдернули все значения break; } } var properties = cookieValue.split(','); // разбили все значения по , в массив for(var i = 0; i<properties.length;i++){ // перебрали массив var property = properties[i].split(':'); // разбили каждый элемент и this[property[0]] = property[1]; // добавили свойства к объектам } } return true; }; return this; };
|
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <script src="http://www.ageent.ru/templates/ageent/script/jquery-1.3.2.min.js" type="text/javascript"></script> <script src="http://www.ageent.ru/templates/ageent/script/jquery.cookie.js" type="text/javascript"></script> <script> $(document).ready(function(){ var c = new $.cookie(); // создаем объект для работы с куками // блок для записи кук $("button:eq(0)").click(function () { c.text = prompt("Введем значение для text"); c.set({ expires: 300, path: '/'}); }); // блок для удаления кук $("button:eq(1)").click(function () { c.text=""; c.set({ expires: -300, path: '/'}); }); //блок который показывает содержимое всех кук $("button:eq(2)").toggle( function () { $(".too").html(document.cookie); $(this).html("Спрятать куки"); }, function () { $(".too").html(""); $(this).html("Как выглядят куки в реале"); } ); //блок который показывает что мы записали в куки $("div").live("mousemove", function(){ c.get(); // получаем куки if((typeof(c.text) != 'undefined' )) { $(".one").html("Мы записали в куки: <b>text: "+c.text+"</b>"); } if((c.text == "")) { $(".one").html(""); } }); }); </script> </head> <body> <div class="main"> <button>Записать значение в куки</button> <button>Очистить куки</button> <button>Как выглядят куки в реале</button> <div class="one"></div> <div class="too"></div> </div> </body> </html>
|
|
|