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动态设置样式实现代码及演示动画
Jan 25 Javascript
js获取通过ajax返回的map型的JSONArray的方法
Jan 09 Javascript
js实现飞入星星特效代码
Oct 17 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
微信小程序 前端源码逻辑和工作流详解
Oct 08 Javascript
Zabbix添加Node.js监控的方法
Oct 20 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
Nov 30 Javascript
vue如何从接口请求数据
Jun 22 Javascript
VUE中v-model和v-for指令详解
Jun 23 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
浅谈Vue组件单元测试究竟测试什么
Feb 05 Javascript
Node.js API详解之 vm模块用法实例分析
May 27 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
mysql 性能的检查和优化方法
2009/06/21 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
python创造虚拟环境方法总结
2019/03/04 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
python自动点赞功能的实现思路
2020/02/26 Python
详解python算法常用技巧与内置库
2020/10/17 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
美国温暖商店:The Warming Store
2018/12/15 全球购物
新学期开学标语
2014/06/30 职场文书
办理收楼委托书范本
2014/10/09 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
用python自动生成日历
2021/04/24 Python