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 单选框,多选框美化代码
Aug 01 Javascript
Prototype Function对象 学习
Jul 12 Javascript
JS类的封装及实现代码
Dec 02 Javascript
js关闭当前页面(窗口)的几种方式总结
Mar 05 Javascript
Jquery submit()无法提交问题
Apr 21 Javascript
AngularJS入门教程之AngularJS指令
Apr 18 Javascript
详解VUE 定义全局变量的几种实现方式
Jun 01 Javascript
JavaScript中document.referrer的用法详解
Jul 04 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 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/07/08 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
php制作文本式留言板
2015/03/18 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
商务英语毕业生自荐信范文
2013/11/08 职场文书
一句话工作感言
2014/03/01 职场文书
幼儿园见习报告
2014/10/30 职场文书
公司介绍信范文
2015/01/31 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers