JavaScript Code

Making Cookies with JavaScript

Without server-side scripting like ASP or PHP, it can seem like a daunting task to create, delete, and read cookies with nothing but HTML and JavaScript. Worry not, this set of functions will give you a full toolkit for easily working with cookies.


// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie (defaults to end of current session)
// [path] - path for which the cookie is valid (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (defaults to domain of calling document)
// [secure] - Boolean value indicating if the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments
function setCookie( name, value, expires, path, domain, secure ) {
    var curCookie = name + '=' + escape( value ) +
                    ( ( expires ) ? '; expires=' + expires.toGMTString() : '' ) +
                    ( ( path ) ? '; path=' + path : '' ) +
                    ( ( domain ) ? '; domain=' + domain : '' ) +
                    ( ( secure ) ? '; secure' : '' );
    document.cookie = curCookie;
}

// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function getCookie( name ) {
    var dc = document.cookie;
    var strPrefix = name + '=';
    var intStart = dc.indexOf( '; ' + strPrefix );
    if ( intStart == -1 ) { intStart = dc.indexOf( strPrefix ); }
    if ( intStart == -1 ) {
        return null;
    } else {
        //intStart += 2;
        var intEnd = document.cookie.indexOf( ';', intStart );
        if ( intEnd == -1 ) { intEnd = dc.length; }
        //alert( intEnd )
        return unescape( dc.substring( intStart + strPrefix.length, intEnd ) );
    }
}

// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create cookie)
// * path and domain default if assigned null or omitted if no explicit argument proceeds
function deleteCookie( name, path, domain ) {
    if ( getCookie( name ) ) {
        document.cookie = name + '=' +
                        ( ( path ) ? '; path=' + path : ''  ) +
                        ( ( domain ) ? '; domain=' + domain : '' ) +
                        '; expires=Thu, 01-Jan-70 00:00:01 GMT';
    }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"
function fixDate( date ) {
  var base = new Date( 0 );
  var skew = base.getTime ();
  if ( skew > 0 )
    date.setTime( date.getTime() - skew );
}
Share

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image