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 获取网页参数系统
Jul 19 Javascript
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
JS命名空间的另一种实现
Aug 09 Javascript
浅析在javascript中创建对象的各种模式
May 06 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 Javascript
详解获取jq ul第一个li定位的四种解决方案
Nov 23 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
JS实现简单的浮动碰撞效果示例
Dec 28 Javascript
VueJS 组件参数名命名与组件属性转化问题
Dec 03 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数据库开发知多少
2006/10/09 PHP
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python实现简易淘宝购物
2019/11/22 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
python各层级目录下import方法代码实例
2020/01/20 Python
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
申报优秀教师材料
2014/12/16 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
python APScheduler执行定时任务介绍
2022/04/19 Python