Software, your way.
How To Get Good Custom Software
(Download)
(PDF)
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

Keeping Image Location Secret

The URL of an image embedded in a web page may be kept secret.

Easier Reading of JSON Data

For easier reading of JSON data, convert the JSON into an array.

Fixed Position Image

Position an image within a browser window that won't move even with page scroll.

Visually Centering Images

Sometimes an image that is technically centered doesn't look quite centered when viewed.

Cookie Directory Protection

Protecting subdirectories with a cookie can be an especially good method when access needs to be allowed from various internet connections.

Check SSL Certificate

An easy-to-use SSL checker to see when your secure certificate expires.

Strong Form Protection From Bots

A web page form that is invisible to spam bots.

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-2024 Will Bontrager Software LLC