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 );
}
Sign up for our daily email newsletter:
You must log in to post a comment.