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 相关文章推荐
IE6,IE7下js动态加载图片不显示错误
Jul 17 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
js页面跳转的常用方法整理
Oct 18 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
jQuery打字效果实现方法(附demo源码下载)
Dec 18 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
May 12 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
Jun 29 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
JS中的BOM应用
Feb 02 Javascript
使用Nuxt.js改造已有项目的方法
Aug 07 Javascript
Vue自定义指令写法与个人理解
Feb 09 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 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提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
javascript 日期时间 转换的方法
2013/02/21 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
Javascript快速实现浏览器系统通知
2017/08/26 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
Python 忽略warning的输出方法
2018/10/18 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
python实现吃苹果小游戏
2020/03/21 Python
keras 多任务多loss实例
2020/06/22 Python
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
幼儿园数学教学反思
2014/02/02 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
六查六看六改心得体会
2014/10/14 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书