jQuery中cookie插件用法实例分析


Posted in Javascript onDecember 04, 2015

本文实例讲述了jQuery中cookie插件用法。分享给大家供大家参考,具体如下:

Jquery里面提供了很多插件,方便,安全,快速实用。这节一起熟悉下JQUERY中操作Cookie的插件,插件名称为jquery.cookie.js,可以去官方网站下载。

下载地址: http://plugins.jquery.com/project/cookie.

插件主要报告如下几个用法

1.创建Cookie

创建一个名称为username,值为 admin的cookie ,如下

$.cookie('username',"admin");

当然cookie还包括路径,过期时间等其他参数,一起看下其他参数的用法
$.cookie('username', 'admin', {expires: 7, path: '/', domain: 'jquery.com', secure: true});

expires:表示过期时间,默认为天,如上表示过期时间为7天,如果省略过期时间,表示关闭浏览器时候,cookie将被删除

也可以设置cookie的过期时间,如下设置3分钟后过期

var dt= new date();
dt.settime(date.gettime() + (3* 60 * 1000));
$.cookie('username', 'admin', { expires: dt});

path:定义cookie的有效路径,默认情况下路径为创建cookie网页所在的路径,如果想让整个网站访问到,路径设置为path: '/'

domain:设置cookie所在的域

secure:  如果为true表示cookie的传输需要使用https安全协议,默认为false

2.删除Cookie

可以使用两种方法

$.removeCookie("username");
$.cookie('username',"null");

3.读取cookie

var account = $.cookie('username');

如果没有写入cookie,读取到的值为undefined

附:jquery.cookie.js完整代码如下:

/*!
 * jQuery Cookie Plugin v1.4.1
 * https://github.com/carhartl/jquery-cookie
 *
 * Copyright 2006, 2014 Klaus Hartl
 * Released under the MIT license
 */
(function (factory) {
  if (typeof define === 'function' && define.amd) {
    // AMD (Register as an anonymous module)
    define(['jquery'], factory);
  } else if (typeof exports === 'object') {
    // Node/CommonJS
    module.exports = factory(require('jquery'));
  } else {
    // Browser globals
    factory(jQuery);
  }
}(function ($) {
  var pluses = /\+/g;
  function encode(s) {
    return config.raw ? s : encodeURIComponent(s);
  }
  function decode(s) {
    return config.raw ? s : decodeURIComponent(s);
  }
  function stringifyCookieValue(value) {
    return encode(config.json ? JSON.stringify(value) : String(value));
  }
  function parseCookieValue(s) {
    if (s.indexOf('"') === 0) {
      // This is a quoted cookie as according to RFC2068, unescape...
      s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
    }
    try {
      // Replace server-side written pluses with spaces.
      // If we can't decode the cookie, ignore it, it's unusable.
      // If we can't parse the cookie, ignore it, it's unusable.
      s = decodeURIComponent(s.replace(pluses, ' '));
      return config.json ? JSON.parse(s) : s;
    } catch(e) {}
  }
  function read(s, converter) {
    var value = config.raw ? s : parseCookieValue(s);
    return $.isFunction(converter) ? converter(value) : value;
  }
  var config = $.cookie = function (key, value, options) {
    // Write
    if (arguments.length > 1 && !$.isFunction(value)) {
      options = $.extend({}, config.defaults, options);
      if (typeof options.expires === 'number') {
        var days = options.expires, t = options.expires = new Date();
        t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
      }
      return (document.cookie = [
        encode(key), '=', stringifyCookieValue(value),
        options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
        options.path ? '; path=' + options.path : '',
        options.domain ? '; domain=' + options.domain : '',
        options.secure ? '; secure' : ''
      ].join(''));
    }
    // Read
    var result = key ? undefined : {},
      // To prevent the for loop in the first place assign an empty array
      // in case there are no cookies at all. Also prevents odd result when
      // calling $.cookie().
      cookies = document.cookie ? document.cookie.split('; ') : [],
      i = 0,
      l = cookies.length;
    for (; i < l; i++) {
      var parts = cookies[i].split('='),
        name = decode(parts.shift()),
        cookie = parts.join('=');
      if (key === name) {
        // If second argument (value) is a function it's a converter...
        result = read(cookie, value);
        break;
      }
      // Prevent storing a cookie that we couldn't decode.
      if (!key && (cookie = read(cookie)) !== undefined) {
        result[name] = cookie;
      }
    }
    return result;
  };
  config.defaults = {};
  $.removeCookie = function (key, options) {
    // Must not alter options, thus extending a fresh object...
    $.cookie(key, '', $.extend({}, options, { expires: -1 }));
    return !$.cookie(key);
  };
}));

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript removeChild 使用注意事项
Apr 11 Javascript
菜鸟学习JavaScript小实验之函数引用
Nov 17 Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 Javascript
js动态生成Html元素实现Post操作(createElement)
Sep 14 Javascript
微信小程序 MINA文件结构
Oct 17 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
Sep 08 Javascript
es6在react中的应用代码解析
Nov 08 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
解决vue刷新页面以后丢失store的数据问题
Aug 11 Javascript
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 #Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 #Javascript
Javascript技术难点之apply,call与this之间的衔接
Dec 04 #Javascript
给before和after伪元素设置js效果的方法
Dec 04 #Javascript
全面解析Bootstrap手风琴效果
Apr 17 #Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 #Javascript
详解JavaScript的Date对象(制作简易钟表)
Apr 07 #Javascript
You might like
PHP读取zip文件的方法示例
2016/11/17 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
js实现进度条的方法
2015/02/13 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
小结Python用fork来创建子进程注意事项
2014/07/03 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
利用python发送和接收邮件
2016/09/27 Python
Python实现随机漫步功能
2018/07/09 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
违反学校规定检讨书
2014/01/18 职场文书
合作协议书范本
2014/04/17 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
高中生逃课检讨书
2014/10/10 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
2016读书月活动心得体会
2016/01/14 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
HTML+JS实现在线朗读器
2022/02/15 Javascript