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 相关文章推荐
使用TextRange获取输入框中光标的位置的代码
Mar 08 Javascript
jQuery技巧总结
Jan 01 Javascript
分享Javascript中最常用的55个经典小技巧
Nov 29 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
如何获取元素的最终background-color
Feb 06 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
Aug 18 Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
vue router 动态路由清除方式
May 25 Vue.js
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 eval函数一句话木马代码
2015/05/21 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
javascript中的几个运算符
2007/06/29 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python实现复制整个目录的方法
2015/05/12 Python
python去掉行尾的换行符方法
2017/01/04 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python缓存技术实现过程详解
2019/09/25 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
Weblogc domain问题
2014/01/27 面试题
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
安全资料员岗位职责
2013/12/14 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
教师现实表现材料
2014/02/14 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
教师考核表个人总结
2015/02/12 职场文书