Skip to content

Instantly share code, notes, and snippets.

@mathiasbynens
Created May 13, 2010 13:54

Revisions

  1. mathiasbynens revised this gist Oct 5, 2011. 2 changed files with 3 additions and 3 deletions.
    4 changes: 2 additions & 2 deletions jquery.cookie.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    /*! Improved jQuery.cookie plugin by @mathias: http://mths.be/abf */
    /*! Improved jQuery.cookie plugin by @mathias: http://mths.be/cookie */
    /*
    * Improved jQuery.cookie plugin – http://mths.be/abf
    * Improved jQuery.cookie plugin – http://mths.be/cookie
    *
    * Based on
    * - the original MIT/GPL-licensed jQuery cookie plugin by Klaus Hartl (stilbuero.de)
    2 changes: 1 addition & 1 deletion jquery.cookie.min.js
    Original file line number Diff line number Diff line change
    @@ -1,2 +1,2 @@
    /*! Improved jQuery.cookie plugin by @mathias: http://mths.be/abf */
    /*! Improved jQuery.cookie plugin by @mathias: http://mths.be/cookie */
    (function(a,b){b.cookie=function(g,h,f){var c="",e,d;if(typeof h!="undefined"){f||(f={});if(!h){h="";f.expires=-1}if(f.expires&&(typeof f.expires=="number"||f.expires.toUTCString)){e=new Date;if(typeof f.expires=="number"){e.setTime(+new Date()+(f.expires*86400000))}else{e=f.expires}c="; expires="+e.toUTCString()}a.cookie=[g,"=",encodeURIComponent(h),c,f.path?"; path="+f.path:"",f.domain?"; domain="+f.domain:"",f.secure?"; secure":""].join("")}else{d=a.cookie.match(new RegExp("(?:^|;)\\s?"+g.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")+"=(.*?)(?:;|$)","i"));return d&&unescape(d[1])}}}(document,jQuery));
  2. mathiasbynens revised this gist Jul 7, 2011. 2 changed files with 5 additions and 4 deletions.
    7 changes: 3 additions & 4 deletions jquery.cookie.js
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,11 @@
    /*!
    /*! Improved jQuery.cookie plugin by @mathias: http://mths.be/abf */
    /*
    * Improved jQuery.cookie plugin – http://mths.be/abf
    *
    * Based on
    * - the original MIT/GPL-licensed jQuery cookie plugin by Klaus Hartl (stilbuero.de)
    * - readCookie() by Lea Verou, James Padolsey and Juriy Zaytsev: http://mths.be/abe
    */

    /*
    *
    * This plugin intentionally uses the same syntax as the original jQuery cookie plugin, for backwards compatibility.
    *
    * Examples:
    2 changes: 2 additions & 0 deletions jquery.cookie.min.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    /*! Improved jQuery.cookie plugin by @mathias: http://mths.be/abf */
    (function(a,b){b.cookie=function(g,h,f){var c="",e,d;if(typeof h!="undefined"){f||(f={});if(!h){h="";f.expires=-1}if(f.expires&&(typeof f.expires=="number"||f.expires.toUTCString)){e=new Date;if(typeof f.expires=="number"){e.setTime(+new Date()+(f.expires*86400000))}else{e=f.expires}c="; expires="+e.toUTCString()}a.cookie=[g,"=",encodeURIComponent(h),c,f.path?"; path="+f.path:"",f.domain?"; domain="+f.domain:"",f.secure?"; secure":""].join("")}else{d=a.cookie.match(new RegExp("(?:^|;)\\s?"+g.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")+"=(.*?)(?:;|$)","i"));return d&&unescape(d[1])}}}(document,jQuery));
  3. mathiasbynens revised this gist Jul 7, 2011. 1 changed file with 77 additions and 70 deletions.
    147 changes: 77 additions & 70 deletions jquery.cookie.js
    Original file line number Diff line number Diff line change
    @@ -1,74 +1,81 @@
    /*!
    * Improved jQuery.cookie plugin – http://mths.be/abf
    *
    * Based on
    * - the original MIT/GPL-licensed jQuery cookie plugin by Klaus Hartl (stilbuero.de)
    * - readCookie() by Lea Verou, James Padolsey and Juriy Zaytsev: http://mths.be/abe
    */
    * Improved jQuery.cookie plugin – http://mths.be/abf
    *
    * Based on
    * - the original MIT/GPL-licensed jQuery cookie plugin by Klaus Hartl (stilbuero.de)
    * - readCookie() by Lea Verou, James Padolsey and Juriy Zaytsev: http://mths.be/abe
    */

    /*
    * This plugin intentionally uses the same syntax as the original jQuery cookie plugin, for backwards compatibility.
    *
    * Examples:
    * =========
    *
    * Create a cookie with the given name and value and other optional parameters.
    *
    * @example $.cookie('the_cookie', 'the_value');
    * @desc Set the value of a cookie.
    * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
    * @desc Create a cookie with all available options.
    * @example $.cookie('the_cookie', 'the_value');
    * @desc Create a session cookie.
    * @example $.cookie('the_cookie', null);
    * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain used when the cookie was set.
    *
    * @param String name The name of the cookie.
    * @param String value The value of the cookie.
    * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
    * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
    * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
    * If set to null or omitted, the cookie will be a session cookie and will not be retained when the the browser exits.
    * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
    * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
    * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will require a secure protocol (like HTTPS).
    * @type undefined
    *
    * Get the value of a cookie with the given name.
    *
    * @example $.cookie('the_cookie');
    * @desc Get the value of a cookie.
    *
    * @param String name The name of the cookie.
    * @return The value of the cookie.
    * @type String
    */
    * This plugin intentionally uses the same syntax as the original jQuery cookie plugin, for backwards compatibility.
    *
    * Examples:
    * =========
    *
    * Create a cookie with the given name and value and other optional parameters.
    *
    * @example $.cookie('the_cookie', 'the_value');
    * @desc Set the value of a cookie.
    * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
    * @desc Create a cookie with all available options.
    * @example $.cookie('the_cookie', 'the_value');
    * @desc Create a session cookie.
    * @example $.cookie('the_cookie', null);
    * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain used when the cookie was set.
    *
    * @param String name The name of the cookie.
    * @param String value The value of the cookie.
    * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
    * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
    * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
    * If set to null or omitted, the cookie will be a session cookie and will not be retained when the the browser exits.
    * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
    * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
    * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will require a secure protocol (like HTTPS).
    * @type undefined
    *
    * Get the value of a cookie with the given name.
    *
    * @example $.cookie('the_cookie');
    * @desc Get the value of a cookie.
    *
    * @param String name The name of the cookie.
    * @return The value of the cookie.
    * @type String
    */

    ;(function($) {
    $.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
    options = options || {};
    if (!value) {
    value = '';
    options.expires = -1;
    }
    var expires = '';
    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
    var date = new Date;
    if (typeof options.expires == 'number') {
    date.setTime(+new Date() + (options.expires * 864e5)); // 86,400,000 ms = 1 day
    } else {
    date = options.expires;
    };
    expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
    }
    var path = options.path ? '; path=' + options.path : '',
    domain = options.domain ? '; domain=' + options.domain : '',
    secure = options.secure ? '; secure' : '';
    document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
    var match = document.cookie.match(new RegExp('(?:^|;)\\s?' + name.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1') + '=(.*?)(?:;|$)','i'));
    return match && unescape(match[1]);
    };
    };
    })(jQuery);
    ;(function(document, $) {
    $.cookie = function(name, value, options) {
    var expires = '',
    date,
    match;
    if (typeof value != 'undefined') { // name and value given, set cookie
    options || (options = {});
    if (!value) {
    value = '';
    options.expires = -1;
    }
    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
    date = new Date;
    if (typeof options.expires == 'number') {
    date.setTime(+new Date() + (options.expires * 864e5)); // 86,400,000 ms = 1 day
    } else {
    date = options.expires;
    }
    expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
    }
    document.cookie = [
    name,
    '=',
    encodeURIComponent(value),
    expires,
    options.path ? '; path=' + options.path : '',
    options.domain ? '; domain=' + options.domain : '',
    options.secure ? '; secure' : ''
    ].join('');
    } else { // only name given, get cookie
    match = document.cookie.match(new RegExp('(?:^|;)\\s?' + name.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1') + '=(.*?)(?:;|$)', 'i'));
    return match && unescape(match[1]);
    };
    };
    }(document, jQuery));
  4. mathiasbynens renamed this gist Jul 7, 2011. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  5. mathiasbynens revised this gist Nov 19, 2010. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Improved jQuery.cookie plugin
    Original file line number Diff line number Diff line change
    @@ -54,7 +54,7 @@
    }
    var expires = '';
    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
    var date;
    var date = new Date;
    if (typeof options.expires == 'number') {
    date.setTime(+new Date() + (options.expires * 864e5)); // 86,400,000 ms = 1 day
    } else {
  6. mathiasbynens revised this gist May 13, 2010. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions Improved jQuery.cookie plugin
    Original file line number Diff line number Diff line change
    @@ -46,9 +46,9 @@

    ;(function($) {
    $.cookie = function(name, value, options) {
    if (typeof value !== 'undefined') { // name and value given, set cookie
    if (typeof value != 'undefined') { // name and value given, set cookie
    options = options || {};
    if (!value === null) {
    if (!value) {
    value = '';
    options.expires = -1;
    }
  7. mathiasbynens created this gist May 13, 2010.
    74 changes: 74 additions & 0 deletions Improved jQuery.cookie plugin
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,74 @@
    /*!
    * Improved jQuery.cookie plugin – http://mths.be/abf
    *
    * Based on
    * - the original MIT/GPL-licensed jQuery cookie plugin by Klaus Hartl (stilbuero.de)
    * - readCookie() by Lea Verou, James Padolsey and Juriy Zaytsev: http://mths.be/abe
    */

    /*
    * This plugin intentionally uses the same syntax as the original jQuery cookie plugin, for backwards compatibility.
    *
    * Examples:
    * =========
    *
    * Create a cookie with the given name and value and other optional parameters.
    *
    * @example $.cookie('the_cookie', 'the_value');
    * @desc Set the value of a cookie.
    * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
    * @desc Create a cookie with all available options.
    * @example $.cookie('the_cookie', 'the_value');
    * @desc Create a session cookie.
    * @example $.cookie('the_cookie', null);
    * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain used when the cookie was set.
    *
    * @param String name The name of the cookie.
    * @param String value The value of the cookie.
    * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
    * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
    * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
    * If set to null or omitted, the cookie will be a session cookie and will not be retained when the the browser exits.
    * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
    * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
    * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will require a secure protocol (like HTTPS).
    * @type undefined
    *
    * Get the value of a cookie with the given name.
    *
    * @example $.cookie('the_cookie');
    * @desc Get the value of a cookie.
    *
    * @param String name The name of the cookie.
    * @return The value of the cookie.
    * @type String
    */

    ;(function($) {
    $.cookie = function(name, value, options) {
    if (typeof value !== 'undefined') { // name and value given, set cookie
    options = options || {};
    if (!value === null) {
    value = '';
    options.expires = -1;
    }
    var expires = '';
    if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
    var date;
    if (typeof options.expires == 'number') {
    date.setTime(+new Date() + (options.expires * 864e5)); // 86,400,000 ms = 1 day
    } else {
    date = options.expires;
    };
    expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
    }
    var path = options.path ? '; path=' + options.path : '',
    domain = options.domain ? '; domain=' + options.domain : '',
    secure = options.secure ? '; secure' : '';
    document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
    var match = document.cookie.match(new RegExp('(?:^|;)\\s?' + name.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1') + '=(.*?)(?:;|$)','i'));
    return match && unescape(match[1]);
    };
    };
    })(jQuery);