zoukankan      html  css  js  c++  java
  • Jquery.cookie.js 源码和使用方法

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

    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源码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    /*!
     * jQuery Cookie Plugin v1.3.1
     *
     * 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;
        };
     
    }));

    本条目发布于2013 年 3 月 27 日。属于前端开发分类。

  • 相关阅读:
    [Bzoj3262]陌上花开(CDQ分治&&树状数组||树套树)
    [洛谷P1501][国家集训队]Tree II(LCT)
    [bzoj2002][Hnoi2010]Bounce 弹飞绵羊(LCT)
    Codeforces Round #683 (Div. 2, by Meet IT) E
    Codeforces Round #683 (Div. 2, by Meet IT) C
    set使用
    Educational Codeforces Round 98 (Rated for Div. 2) D
    Educational Codeforces Round 98 (Rated for Div. 2) B
    arc102a
    树状数组知识点整理二(待)
  • 原文地址:https://www.cnblogs.com/ljq-0722/p/5624383.html
Copyright © 2011-2022 走看看