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 异步页面查询实现代码(asp.net)
May 26 Javascript
PHP 与 js的通信(via ajax,json)
Nov 16 Javascript
理解JavaScript中的对象 推荐
Jan 09 Javascript
一个挺有意思的Javascript小问题说明
Sep 26 Javascript
如何将php数组或者对象传递给javascript
Mar 20 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
Oct 14 Javascript
js简单实现网页换肤功能
Apr 07 Javascript
js学使用setTimeout实现轮循动画
Jul 17 Javascript
JavaScript登录验证基础教程
Nov 01 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
js 实现碰撞检测的示例
Oct 28 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生成年月日下载列表的方法
2015/04/24 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
python实现保存网页到本地示例
2014/03/16 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
Python执行时间的几种计算方法
2020/07/31 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
python中二分查找法的实现方法
2020/12/06 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
领导班子整改措施
2014/10/24 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
土建施工员岗位职责
2015/04/11 职场文书
PHP使用QR Code生成二维码实例
2021/07/07 PHP
Python面试不修改数组找出重复的数字
2022/05/20 Python
Golang实现可重入锁的示例代码
2022/05/25 Golang
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers