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 相关文章推荐
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
采用call方式实现js继承
May 20 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
Sep 25 Javascript
JS显示日历和天气的方法
Mar 01 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
Dec 08 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
JavaScript通如何过RGraph实现动态仪表盘
Oct 15 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 strtr() 函数使用说明
2008/11/21 PHP
php&amp;mysql 日期操作小记
2012/02/27 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
python调用cmd复制文件代码分享
2013/12/27 Python
Python实现的Excel文件读写类
2015/07/30 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
django中静态文件配置static的方法
2018/05/20 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python中的错误如何查看
2020/07/08 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
Python 实现一个简单的web服务器
2021/01/03 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
介绍一下你对SOA的认识
2016/04/24 面试题
调解员先进事迹材料
2014/02/07 职场文书
风险评估实施方案
2014/03/09 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
一体化教学实施方案
2014/05/10 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
小学英语复习计划
2015/01/19 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript