Cookies in JavaScript
This tutorial should get you started with cookies in JavaScript. Some utility JavaScript functions are included for you to use freely in your own code.
JavaScript cookies are easily manipulated using the document.cookie property.
Setting Cookies
To set a cookie all we need to do is assign a value to the document.cookie property.
document.cookie = "name=value";
Retrieving Cookies
Reading cookies is equally as easy. Simple read the value of document.cookie.
alert(document.cookie);
JavaScript Cookie Functions
This all looks very simple, but what about getting cookies with a specific name, or setting expiry dates? To do this we need to use a bunch of utility cookie functions.
/**
* Sets a Cookie with the given name and value.
*
* name Name of the cookie
* value Value of the cookie
* [expires] Expiration date of the cookie (default: end of current session)
* [path] Path where the cookie is valid (default: path of calling document)
* [domain] Domain where the cookie is valid
* (default: domain of calling document)
* [secure] Boolean value indicating if the cookie transmission requires a
* secure transmission
*/
function setCookie(name, value, expires, path, domain, secure) {
document.cookie= name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
/**
* Gets the value of the specified cookie.
*
* name Name of the desired cookie.
*
* Returns a string containing value of specified cookie,
* or null if cookie does not exist.
*/
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
/**
* Deletes the specified cookie.
*
* 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)
*/
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";
}
}
I've put these JavaScript functions into a convenient file: cookies.js for you to download. Then whenever you need to use them, simply
put something like the following in the head section of your HTML page:
<script type="text/javascript" src="cookies.js"></script>
JavaScript Cookie Example
<input type="button" value="Set Cookie"
onclick='setCookie("data", prompt("Enter some data:"))' />
That looked pretty easy didn't it? You can try it out now:
Now for reading the cookie:
<a href="#" onclick='alert(getCookie("data"));return false'>Get Cookie!</a>
1 year, 5 months ago
It is very nice to share knowledge
1 year, 5 months ago
Really helpful!
1 year, 5 months ago
Hi there,
I've built a form for peolpe to submit a vote and I thought the best way to restrict people voting twice would be to create a cookie called "voted" and set the value to 1 when they vote.
When the page loads I want it to check for the cookie to see if that person has voted or not.
I copied your script and it works great. I can create a cookie called Voted with a value of 1, but how can I set an expiry date of say.. December on the cookie? I can't seem to work it out. Thanks a lot! Tom
1 year, 5 months ago
You'll want to use an expiry date of something like:
to make the cookie expire 30 days in the future.
1 year, 4 months ago
To delete the we need to reload the browser... Is there any option that will delete/remove cookie without refreshing the browser?
7 months, 3 weeks ago
To remove a cookie, you would set the expirey date to a time in the past (it's self-explanitory) new Date(new Date().getTime() - (3600))
Need any more help? email me. digimonfan851@gmail.com