JavaScript Tip of the Week for July 1st, 1996: Using a Browser's Cookie | Source Code
for July 1st, 1996: Source Code: Using a Browser's Cookie
Jump to source of:
These three functions must be in the head of all pages that use the cookie:
/* This code is Copyright (c) 1996 Nick Heinle and Athenia Associates,
* all rights reserved. In order to receive the right to license this
* code for use on your site the original code must be copied from the
* Web site webreference.com/javascript/. License is granted to user to
* reuse this code on their own Web site if and only if this entire copyright
* notice is included. Code written by Nick Heinle of webreference.com.
*/
// Public domain cookie code written by: Bill Dortch, hIdaho Design (bdortch@netw.com)
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
// - - - - - - - - Get Value of Cookie - - - - - - - -
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
// - - - - - - - - Set Value of Cookie - - - - - - - -
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
// - - - - - - - - End of Public Domain code - - - - - - - -
Code for client-side cookie counter:
function show_count() {
var expdate = new Date();
var num;
expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
if(!(num = GetCookie("jtotwcount")))
num = 0;
num++;
SetCookie ("jtotwcount", num, expdate);
if (num == 1) document.write("Since this is your first time here you should take a look around.");
else document.write("You have been to this tip " + num + " times.");
Code to display and save names:
}
function show_name() {
if(GetCookie("jtotwname") != null)
document.write("Welcome to part 2 of this week\'s tip " + GetCookie('jtotwname') + ". ");
else document.write("Welcome to part two of this week\'s tip. ");
}
function set_name(form) {
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
var username = form.nameinput.value
if (username != "") {
if (confirm("Are you sure you want this saved as your name?"))
SetCookie ("jtotwname", username, expdate);
}
else alert("Geez, at least enter something, entering nothing will cause an error.");
}
The set_name() function is activated a form like this:
<FORM> Please enter your name: <INPUT TYPE = "text" NAME = "nameinput"><BR><BR> <INPUT TYPE = "button" VALUE = "Save to Cookie" onClick = "set_name(this.form)"> </FORM>


