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

 * 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;

    };

}));

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

时间: 2024-10-02 03:34:32

Jquery.cookie.js 源码和使用方法的相关文章

jQuery.cookie.js插件了解及使用方法

jquery.cookie.js插件实现浏览器的cookie存储,该插件是基于jquery开发,方便cookie使用. jquerycookie.js的下载地址 http://plugins.jquery.com/project/cookie 1.准备工作 1)由于该插件依赖jQuery,所以首先在页面引入jquey插件 2)在页面引入jQuery.cookie.js 2.使用方法 设置cookie /* ** 设置cookie ** 第一个参数设置cookie的key ** 第二个参数设置co

亚马逊左侧菜单延迟z三角 jquery插件jquery.menu-aim.js源码解读

关于亚马逊的左侧菜单延迟,之前一直不知道它的实现原理.梦神提到了z三角,我也不知道这是什么东西.13号那天很有空,等领导们签字完我就可以走了.下午的时候,找到了一篇博客:http://jayuh.com/amazon-site-navigation/ 它提到亚马逊左侧菜单的秘密在于它有一个三角形的缓冲延迟区域. 当鼠标在这个蓝色范围内移动时,会有延迟,所以右侧的二级菜单才不会马上变化. 顺着博客在github找到了这个插件:https://github.com/jayuh/jQuery-menu

jquery.unobtrusive-ajax.js源码阅读

/*! ** Unobtrusive Ajax support library for jQuery ** Copyright (C) Microsoft Corporation. All rights reserved. */ /*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true,

jquery.cookie.js 使用方法

Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jquery.cookie.js:下载:http://plugins.jquery.com/cookie/ <script type="text/javascript" src="js/jquery.min.js"></script> <scr

Jquery.cookie.js插件:$.cookie方法的使用

<script type="text/javascript" src="jjquery-1.6.2.min.js"></script> <script type="text/javascript" src="jquery.cookie.js"></script> 1.新增cookie: $.cookie('cookieName', 'cookieValue'); 注:如果没有设置

jqueryui.position.js源码分析

最近要写前端组件了,狂砍各种组件源码,这里分析一款jqueryui中的posistion插件,注意,它不是jqueryui widget,首先看下源码总体结构图 1.看到$.fn.position 是不是很熟悉?嗯,就是将position方法挂载到原型上,然后控件就可以直接调用了, 2.$.ui.position 这个对象是,用来进行冲突判断的,什么冲突?就是元素与父容器所拥有的空间以及当前可用窗口的控件,默认情形下,如果冲突则采用反转方向的方式显示:对这一点不要惊讶,一切都是为了正常显示而用的

通过jquery.cookie.js实现记住用户名、密码登录功能

<!doctype html>   <html xmlns="http://www.w3.org/1999/xhtml">   <head>   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   <title>无标题文档</title>   <script src="

MVVM大比拼之vue.js源码精析

VUE 源码分析 简介 Vue 是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google.vue 如作者自己所说,在api设计上受到了很多来自knockout.angularjs等大牌框架影响,但作者相信 vue 在性能.易用性方面是有优势.同时也自己做了和其它框架的性能对比,在这里.今天以版本 0.10.4 为准 入口 Vue 的入口也很直白: ? 1 var demo = new Vue({ el: '#demo', data: { message: 'Hello V

jquery.cookie.js使用

1.下载jquery.cookie.js 官网:http://plugins.jquery.com/cookie/ 或 http://pan.baidu.com/s/1mgynA8g 2.使用方法 复制代码 $.cookie('the_cookie'); // 获得cookie $.cookie('the_cookie', 'the_value'); // 设置cookie $.cookie('the_cookie', 'the_value', { expires: 7 }); //设置带时间的