burger menu icon
WillMaster

WillMasterBlog > JavaScript

FREE! Coding tips, tricks, and treasures.

Possibilities weekly ezine

Get the weekly email website developers read:

 

Your email address

name@example.com
YES! Send Possibilities every week!

Do Only Once

This post will show how to prevent pretty much any JavaScript function from running more than once with a cookie. The instructions in the JavaScript tell how to set up to cookie to be available site-wide or only from certain directories.

The first thing to do is to put these two lines of JavaScript into the function you want to limit to running only once:

if(HasCookie()) { return; }
GiveCookie();

Make it so those two lines are the first lines the function runs. For example, if your function was

function Something()
{
   alert("hello");
}

Then it would become

function Something()
{
   if(HasCookie()) { return; }
   GiveCookie();
   alert("hello");
}

That was the first step. The above code will work only when both steps have been completed.

What the above code does: If the browser has the cookie, processing returns out of the function. Otherwise, it is given the cookie and the function continues to run.

The next step is to insert this JavaScript somewhere above the modified function.

It doesn't have to be immediately above, although it can be. The idea is for the browser to load this JavaScript before the modified function is loaded.

<script type="text/javascript" language="JavaScript">
// Copyright 2007 Bontrager Connection, LLC
// https://www.willmaster.com/
//
// Type the domain name for the cookie.
// These examples use domain name example.com. Use your own 
//    domain name instead.
// To cookie can be applied to the www.example.com and/or 
//    the example.com versions of URL. Decide which you 
//    want (or both) and specify the domain below.
//       "www.example.com" (sets cookie for 
//                          http://www.example.com/)
//       "example.com"     (sets cookie for 
//                          http://example.com/)
//       ".example.com"    (sets cookie for both 
//                          http://www.example.com/ and 
//                          http://example.com/ -- and also
//                          http://anything.example.com)

var CookieDomain = ".example.com";


// Specify the directory the cookie is set for.
// To apply the cookie to the entire domain, specify "/"
// To apply the cookie to only a certain directory (and its 
//    subdirectories), specify "/directoryname"

var CookieDirectory = "/";


// Specify the cookie name. The name may have only letters 
//    and numbers.
// The name matters only to make sure no other cookie with 
//    the same name is set for this domain and directory.

var CookieName = "myCookie";


// Specify how many days the cookie shall last. Use the 
//    number 0 to make it a session cookie (a cookie that 
//    will self-delete when the browser closes).

var DaysCookieShallLive = 365;


//
// No other customization needs to be done in this JavaScript.
//
////  ////  ////  ////

function GiveCookie() {
var d = parseInt(DaysCookieShallLive);
var exp = '';
if(d > 0) {
	var now = new Date();
	then = now.getTime() + (d * 24 * 60 * 60 * 1000);
	now.setTime(then);
	exp = '; expires=' + now.toGMTString();
	}
document.cookie = CookieName+'=set; path='+CookieDirectory+'; domain='+CookieDomain+exp;
}

function HasCookie() {
var cookiecontent = new String();
if(document.cookie.length > 0) {
	var cookiename = CookieName+'=';
	var cookiebegin = document.cookie.indexOf(cookiename);
	var cookieend = 0;
	if(cookiebegin > -1) {
		cookiebegin += cookiename.length;
		cookieend = document.cookie.indexOf(";",cookiebegin);
		if(cookieend < cookiebegin) { cookieend = document.cookie.length; }
		cookiecontent = document.cookie.substring(cookiebegin,cookieend);
		}
	}
if(cookiecontent.length > 0) { return true; }
return false;
}
</script>

Instructions in the JavaScript tell you where (and what) to specify the domain name, the section of the website the cookie shall affect, how long the cookie shall persist, and the cookie's name.

Remove the <script...> and </script> tags if the JavaScript will be in a file separate from the web page

Will Bontrager

Was this blog post helpful to you?
(anonymous form)

Support This Website

Some of our support is from people like you who see the value of all that's offered for FREE at this website.

"Yes, let me contribute."

Amount (USD):

Tap to Choose
Contribution
Method


All information in WillMaster Blog articles is presented AS-IS.

We only suggest and recommend what we believe is of value. As remuneration for the time and research involved to provide quality links, we generally use affiliate links when we can. Whenever we link to something not our own, you should assume they are affiliate links or that we benefit in some way.

Recent Articles in the Library

Beacon

Send a beacon to your script. Optionally, also send information.

Digging for an IP Address

While an app's IP address can always be found in the REMOTE_ADDR value, the value might not be the actual destination of the content retrieved from your website.

Simple CSS Rotate

Rotate divs, tables, and even characters. Specify the number of degrees or fraction of a turn, and you're good to go.

Avoid Expired SSL Certificate

Check the expiration date of your domain's SSL certificate

Image Zoom on Hover

Zoom the image with a hover. CSS. No JavaScript.

The INS and DEL Tags

The INS and DEL tags come in mighty handy to display editing marks and to emphasize ideas with HTML markup.

Viewing HTML Source Code

Three ways to view HTML source code.

How Can We Help You? balloons
How Can We Help You?
bullet Custom Programming
bullet Ready-Made Software
bullet Technical Support
bullet Possibilities Newsletter
bullet Website "How-To" Info
bullet Useful Information List

© 1998-2001 William and Mari Bontrager
© 2001-2011 Bontrager Connection, LLC
© 2011-2026 Will Bontrager Software LLC