jquery.cookie.js的介绍与使用方法


Posted in Javascript onFebruary 09, 2017

什么是 cookie?

cookie 就是页面用来保存信息,比如自动登录、记住用户名等等。

cookie 的特点

  1. 同个网站中所有的页面共享一套 cookie
  2. cookie 有数量、大小限制
  3. cookie 有过期时间jquery.cookie.js 是一款轻量级的 cookie 插件,可以读取,写入和删除 cookie。本文主要针对

jquery.cookie.js 的用法进行详细的介绍。

jquery.cookie.js 使用方法

Cookies

定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术;

下载与引入:jquery.cookie.js基于jquery;先引入jquery,再引入:jquery.cookie.js;

下载:http://plugins.jquery.com/cookie/

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>

使用:

1.添加一个"会话cookie"

$.cookie('the_cookie', 'the_value');

这里没有指明 cookie有效时间,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为 “会话cookie(session cookie)”。

2.创建一个cookie并设置有效时间为 7天

$.cookie('the_cookie', 'the_value', { expires: 7 });

这里指明了cookie有效时间,所创建的cookie被称为“持久 cookie (persistent cookie)”。注意单位是:天;

3.创建一个cookie并设置 cookie的有效路径

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

在默认情况下,只有设置 cookie的网页才能读取该 cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。cookie的路径用于设置能够读取 cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取 cookie (一般不要这样设置,防止出现冲突)。

4.读取cookie

$.cookie('the_cookie');

5.删除cookie

$.cookie('the_cookie', null);   //通过传递null作为cookie的值即可

6.可选参数

$.cookie('the_cookie','the_value',{
  expires:7, 
  path:'/',
  domain:'jquery.com',
  secure:true
}) 

expires:(Number|Date)有效期;设置一个整数时,单位是天;也可以设置一个日期对象作为Cookie的过期日期;
path:(String)创建该Cookie的页面路径;
domain:(String)创建该Cookie的页面域名;
secure:(Booblean)如果设为true,那么此Cookie的传输会要求一个安全协议,例如:HTTPS;

使用方法:

设置 cookie:

$.cookie('the_cookie', 'the_value');

注:如果 $.cookie 没有第三个参数,那么当浏览器关闭时,该 cookie 将会自动删除。

设置一个有效期为 7 天的 cookie:

$.cookie('the_cookie', 'the_value', {expires: 7});

注:$.cookie 第三个参数是一个对象,除了可以设置有效期(expires: 7),还可以设置有效路径(path: '/')、有效域(domain: 'jquery.com')及安全性(secure: true)。

读取 cookie:

$.cookie('the_cookie');

注:如果没有该 cookie,返回 null。

删除 cookie:

$.cookie('the_cookie', null);

我们只需要给需要删除的 cookie 设置为 null,就可以删除该 cookie。

最后附上源代码:

/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 * used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *    If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *    If set to null or omitted, the cookie will be a session cookie and will not be retained
 *    when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *   require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
 if (typeof value != 'undefined') { // name and value given, set cookie
 options = options || {};
 if (value === null) {
  value = '';
  options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
  options.expires = -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(); // use expires attribute, max-age is not supported by IE
 }
 // NOTE Needed to parenthesize options.path and options.domain
 // in the following expressions, otherwise they evaluate to undefined
 // in the packed version for some reason...
 var path = options.path ? '; path=' + (options.path) : '';
 var domain = options.domain ? '; domain=' + (options.domain) : '';
 var secure = options.secure ? '; secure' : '';
 document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
 } else { // only name given, get cookie
 var cookieValue = null;
 if (document.cookie && document.cookie != '') {
  var cookies = document.cookie.split(';');
  for (var i = 0; i < cookies.length; i++) {
  var cookie = jQuery.trim(cookies[i]);
  // Does this cookie string begin with the name we want?
  if (cookie.substring(0, name.length + 1) == (name + '=')) {
   cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
   break;
  }
  }
 }
 return cookieValue;
 }
};

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
JavaScript的各种常见函数定义方法
Sep 16 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
Feb 23 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
jQuery自定义插件详解及实例代码
Dec 29 Javascript
JavaScript表单验证实现代码
May 22 Javascript
微信小程序tabBar底部导航中文注解api详解
Aug 16 Javascript
解决vue打包之后静态资源图片失效的问题
Feb 21 Javascript
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
js 数据存储和DOM编程
Feb 09 #Javascript
超全面的javascript中变量命名规则
Feb 09 #Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 #Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 #Javascript
js 原型对象和原型链理解
Feb 09 #Javascript
AngularJs表单校验功能实例代码
Feb 09 #Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 #Javascript
You might like
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
js的2种继承方式详解
2014/03/04 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中redis的安装和使用
2016/12/04 Python
Pytorch to(device)用法
2020/01/08 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
2014年少先队工作总结
2014/12/03 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
交通事故被告代理词
2015/05/23 职场文书
格林童话读书笔记
2015/06/30 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
浅析python中特殊文件和特殊函数
2022/02/24 Python
解析MySQL索引的作用
2022/03/03 MySQL
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server