educational

Banner Rotation Using JavaScript

One of the most welcome "newbie" applications for JavaScript is as a means of banner rotation. While the more experienced Webmaster may shun such an application in favor of much more robust CGI/Perl, PHP, or other suitable technologies, these are often beyond the newbie's grasp (and budget), and likely not possible with most free hosted Web accounts. Here are three good examples of banner rotation using JavaScript:

BANNER ROTATOR #1
This script shows a random banner or other image along with a hyperlink and text description. This script is easily customizable for your page; simply change the linking urls, image urls, and the link names that you wish to display (be sure the order matches) and ensure that the last one of each type does not contain a comma (,) at the end.

<SCRIPT language="JavaScript">
<!-- BANNER ROTATOR #1

var currentdate = 0;
var core = 0;

This "weighted" rotation script not only displays your banners, but also controls how often they appear, allowing you to display a preferred banner over any others!

function initArray() {

this.length = initArray.arguments.length;
for (var i = 0; i < this.length; i++) {
this[i] = initArray.arguments[i];
}
}

link = new initArray(
"https://URL 1/",
"https://URL 2/",
"https://URL 3/"
);

image = new initArray(
"https://IMAGE 1.gif",
"https://IMAGE 2.gif",
"https://IMAGE 3.gif"
);

text = new initArray(
"DESCRIPTION 1",
"DESCRIPTION 2",
"DESCRIPTION 3"
);

var currentdate = new Date();
var core = currentdate.getSeconds() % image.length;
var ranlink = link[core];
var ranimage = image[core];
var rantext = text[core];

document.write('<a href=\"' +ranlink+ '\"><img src=\"'+ranimage+'\" border="0" alt=\"'+rantext+'\"></a>');

// BANNER ROTATOR #1 -->
</SCRIPT>

BANNER ROTATOR #2
This hot script will change banner images on the fly, with no need to reload the page! You can also adjust the amount of time that each banner is shown!

Place the following lines inside of your <HEAD></HEAD> tag:

<SCRIPT language="JavaScript">
<!-- BANNER ROTATOR #2
var mfBanners = [
['https://www.URL 1.com', 'https://BANNER 1.gif'],
['https://www.URL 2.com', 'https://BANNER 2.gif'],
['https://www.URL 3.com', 'https://BANNER 3.gif']
];
var mfIe = false;
if( document.all) {
mfIe = true;
}
var mfBannerIndex = 0;
function mfBannerChange() {
var htmlString = '<a target="_blank" href="'+mfBanners[mfBannerIndex][0]+'"> <img border="0" src="'+mfBanners[mfBannerIndex][1]+'"></a>';
if( mfIe) {
document.all.banner.innerHTML = htmlString;
}
else {
document.layers["banner"].document.open();
document.layers["banner"].document.write( htmlString);
document.layers["banner"].document.close();
}
if(mfBannerIndex < mfBanners.length - 1)
mfBannerIndex++;
else
mfBannerIndex = 0;
}
setInterval("mfBannerChange()", 5000);
// BANNER ROTATOR #2 -->
</SCRIPT>

Now put the following lines inside of your <BODY> code:

<DIV id="banner" style="position:absolute; top:300; left:171;"></DIV>

BANNER ROTATOR #3
This "weighted" rotation script not only displays your banners, but also controls how often they appear, allowing you to display a preferred banner over any others!

Place the following lines inside of your <HEAD></HEAD> tag:

<SCRIPT language="JavaScript">
<!-- BANNER ROTATOR #3
function banner(imgSource,url,alt,chance) {
this.imgSource = imgSource;
this.url = url;
this.alt = alt;
this.chance = chance;
}
function dispBanner() {
with (this) document.write("<A HREF=" + url + "><IMG SRC='" + imgSource + "' WIDTH=468 HEIGHT=60 BORDER=0 ALT='" + alt + "'></A>");
}
banner.prototype.dispBanner = dispBanner;
banners = new Array();
banners[0] = new banner("https://www.BANNER 1.jpg",
"https://www.URL 1.net target='_blank'",
"DESCRIPTION 1",
10);
banners[1] = new banner("https://BANNER 2.gif",
"https://www.URL 2.com target='_blank'",
"DESCRIPTION 2",
30);
banners[2] = new banner("https://BANNER 3.gif",
"https://www.URL 3.com target='_blank'",
"DESCRIPTION 3",
20);

///////////////////////////////////////////////////
// banners[x] = new banner(<banner source image>, // <url to link to when the banner is clicked>, // <alt> // <the chance this banner has in which to be randomly selected>);
// To increase the chance of a banner being randomly selected, increase it's corresponding // 'chance' property relative to the other banners.
///////////////////////////////////////////////////

sum_of_all_chances = 0;
for (i = 0; i < banners.length; i++) {
sum_of_all_chances += banners[i].chance;
}
function randomBanner() {
chance_limit = 0;
randomly_selected_chance = Math.round((sum_of_all_chances - 1) * Math.random()) + 1;
for (i = 0; i < banners.length; i++) {
chance_limit += banners[i].chance;
if (randomly_selected_chance <= chance_limit) {
document.write("<A HREF=" + banners[i].url + "><IMG SRC='" + banners[i].imgSource + "' WIDTH=468 HEIGHT=60 BORDER=0 ALT='" + banners[i].alt + "'></A>");
return banners[i];
break;
}
}
}
// BANNER ROTATOR #3 -->
</SCRIPT>

Hopefully one of these JavaScripts will allow you to maximize your advertising effectiveness by presenting a variety of banners to your site's visitors. Measuring which of several banners produces the best results will alow you to tailor your ad approach to your audience. Good Luck!

Copyright © 2026 Adnet Media. All Rights Reserved. XBIZ is a trademark of Adnet Media.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.

More Articles

opinion

How Layered Fraud Controls Can Stop Card Testing Before Chargebacks Hit

You suddenly have 400 new $1 trial signups. Sales are up, the approval rate looks great and, at first glance, the numbers seem worth celebrating.

Jonathan Corona ·
profile

BranditScan's Aerie Saunders on Fostering Creator Knowledge, Confidence and Community

Aerie Saunders is firmly in her season. When she sits down with XBIZ, a fall-scented WoodWick candle burns in the background, pumpkins decorate her desk and the first signs of spooky season are already on display. Not that Saunders waits until autumn to embrace the macabre.

Jackie Backman ·
opinion

What Mastercard's Scam Monitoring Program Means for Adult Merchants

Mastercard's Scam Merchant Monitoring Program (SMMP) has introduced a new, investigation-led framework that works very differently from the ratio-based chargeback programs the industry has relied on for years. It applies to card-not-present merchants globally, and Mastercard's guidance on business models warranting closer attention includes adult content and dating platforms, along with subscription services, digital goods and forex.

Len Garcia ·
opinion

Why the Right Merchant Category Code Matters for NSFW AI Businesses

You explained exactly what your NSFW AI business does to your payment processor and they seemed to get it. The underwriting process felt thorough and exhausting, but it was well worth it because you began processing.

Jonathan Corona ·
opinion

How Local Payments Can Expand Access and Reduce Friction at Checkout

Global adult platforms often enter new markets with a familiar assumption: If their checkout accepts major cards, they're ready for local customers. In reality, payment habits vary widely by country. Dutch consumers use iDEAL for online shopping, BLIK is a leading e-commerce payment method in Poland, and India's UPI handles billions of transactions each month.

Mitch Platt ·
opinion

How Detailed Receipts Build Consumer Trust and Reduce Chargeback

When was the last time you bought something online? Chances are you looked for the confirmation almost immediately. Did the transaction go through? Does it show what you bought? Were you charged correctly? And if there's a problem, who can you contact?

Cathy Beardsley ·
opinion

What Adult Platforms Should Know About the EU AI Act

The European Union's Artificial Intelligence Act is now largely in force, creating new obligations for adult platforms using AI for content creation, performer verification, age estimation, moderation and other functions.

Corey Silverstein ·
profile

Verifymy's Emma Robert-Tissot on Putting People at the Heart of Online Safety

Warm, friendly and always happy to help, Emma Robert-Tissot has a gift for making even the most complex corners of online safety feel approachable.

Jackie Backman ·
profile

YourVids' Gino on Listening, Learning and Putting Creators First

Get Gino talking about the work creators pour into their careers, and his passion quickly becomes contagious. He deeply appreciates the people powering the business and has firm ideas about what they deserve in return.

Jackie Backman ·
profile

Vendo CEO Mitch Platt Reflects on 20 Years of Lessons and Evolution

More than 20 years ago, three entrepreneurs in Barcelona began gathering over beers to pitch, dissect and routinely destroy one another's business ideas. The ritual was simple: One person arrived with a concept, while the other two tried to expose every weakness. Any proposal that survived earned another look. Most did not.

Jackie Backman ·
Show More