jquery.cookie.js源码和使用方法

来源:互联网 发布:淘粉吧是淘宝授权的吗 编辑:程序博客网 时间:2024/06/10 23:46

jQuery操作cookie的插件,大概的使用方法如下

$.cookie('the_cookie’); //读取Cookie值
$.cookie(’the_cookie’, ‘the_value’); //设置cookie的值
$.cookie(’the_cookie’, ‘the_value’, {expires: 7, path: ‘/’, domain: ‘jquery.com’, secure: true});//新建一个cookie 包括有效期 路径 域名等
$.cookie(’the_cookie’, ‘the_value’); //新建cookie
$.cookie(’the_cookie’, null); //删除一个cookie

jquery.cookie.js源码

/*! * jQuery Cookie Plugin v1.3.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */(function (factory) {    if (typeof define === 'function' && define.amd) {        // AMD. Register as anonymous module.        define(['jquery'], factory);    } else {        // Browser globals.        factory(jQuery);    }}(function ($) {     var pluses = /\+/g;     function raw(s) {        return s;    }     function decoded(s) {        return decodeURIComponent(s.replace(pluses, ' '));    }     function converted(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 {            return config.json ? JSON.parse(s) : s;        } catch(er) {}    }     var config = $.cookie = function (key, value, options) {         // write        if (value !== undefined) {            options = $.extend({}, config.defaults, options);             if (typeof options.expires === 'number') {                var days = options.expires, t = options.expires = new Date();                t.setDate(t.getDate() + days);            }             value = config.json ? JSON.stringify(value) : String(value);             return (document.cookie = [                config.raw ? key : encodeURIComponent(key),                '=',                config.raw ? value : encodeURIComponent(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 decode = config.raw ? raw : decoded;        var cookies = document.cookie.split('; ');        var result = key ? undefined : {};        for (var i = 0, l = cookies.length; i < l; i++) {            var parts = cookies[i].split('=');            var name = decode(parts.shift());            var cookie = decode(parts.join('='));             if (key && key === name) {                result = converted(cookie);                break;            }             if (!key) {                result[name] = converted(cookie);            }        }         return result;    };     config.defaults = {};     $.removeCookie = function (key, options) {        if ($.cookie(key) !== undefined) {            $.cookie(key, '', $.extend(options, { expires: -1 }));            return true;        }        return false;    }; }));