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

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 ·
trends

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 ·
opinion

How Native Spanish Speakers Help Pleasure Brands Expand Across Latin America

Latin America's Spanish-speaking markets represent an exciting growth opportunity for the pleasure products industry. Across the region, conversations about sexual wellness are becoming more open, specialty retailers are expanding their assortments and shoppers are seeking products that reflect their lifestyles and values.

Rin Musick ·
opinion

Why Retail Expertise Is Essential When AI Tools Analyze Store Data

Somewhere in one of our stores, someone scanned a barcode into a quantity field. The number entered was 8,388,607. At $19.99 per unit, that made a single line item worth roughly $167 million. The number was so large that the import failed immediately.

Zondre Watson ·
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 ·
opinion

How to Avoid the Hidden Risks of AI-Generated Legal Documents

Artificial intelligence can write a contract in seconds, but that does not mean it can write the contract your business actually needs. Across the adult industry, operators, creators and producers are increasingly using generative AI to prepare model releases, performer agreements, privacy policies, takedown notices, employment documents and responses to regulators. The appeal is obvious: Legal work is expensive, AI is fast and the resulting document often looks impressively professional. That polished appearance is exactly what makes the practice dangerous.

Corey Silverstein ·
opinion

How Rolling Reserves Affect Cash Flow and Merchant Stability

You log in to your payment processor’s dashboard, discover they are withholding 10% of your sales, and immediately assume something has gone wrong. In reality, everything is working exactly as intended.

Jonathan Corona ·
Show More