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 相关文章推荐
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
jQuery filter函数使用方法
May 19 Javascript
Javascript获取CSS伪元素属性的实现代码
Sep 28 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
通过JS判断联网类型和连接状态的实现代码
Apr 01 Javascript
理解javascript中的MVC模式
Jan 28 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
详解vue-element Tree树形控件填坑路
Mar 26 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 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
第一个无线电台是由谁发明的
2021/03/01 无线电
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
js 居中漂浮广告
2010/03/21 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Django框架中的对象列表视图使用示例
2015/07/21 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
对python多线程与global变量详解
2018/11/09 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
金融管理专业毕业生求职信
2014/03/12 职场文书
保护野生动物倡议书
2014/05/16 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
生产操作工岗位职责
2014/09/16 职场文书
中国合伙人观后感
2015/06/02 职场文书
英语投诉信范文
2015/07/03 职场文书