JavaScript Tip of the Week for July 1st, 1996: Using a Browser's Cookie | Source Code | WebReference

JavaScript Tip of the Week for July 1st, 1996: Using a Browser's Cookie | Source Code

JavaScript Tip of the Weekfor 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>