Click here to Skip to main content
13,258,479 members (48,190 online)
Click here to Skip to main content
Add your own
alternative version


9 bookmarked
Posted 8 Oct 2003


, 14 Oct 2003
Rate this:
Please Sign up or sign in to vote.
An object oriented approach for displaying banners.


I was looking for a JavaScript banner solution that allows me to run banners on my web, when I discovered the BarelyFitz JavaScript slideshow. It's the best slideshow script I've seen, and I decided to use if for my banners.


The easiest method to "borrow" somebody else's code, is through inheritance. Using Nicholas C. Zakas's technique makes inheritance in JavaScript a dream:

Object.prototype.extend = function (oSuper) { 
       for (sProperty in oSuper) { 
               this[sProperty] = oSuper[sProperty]; 

function ClassA () { 

function ClassB() { 
       this.extend(new ClassA()); 

The Banner Class

The reason I wrote this banner class, was to be able to have two (or more) banners on one page. The banner class acts as a wrapper around the slideshow class and inherits slideshow's methods and properties.

You'll find a demo here.


BarelyFitz JavaScript slideshow.js.

The code

<SCRIPT type="text/javascript" src="slideshow.js"></SCRIPT>
<SCRIPT language="JavaScript1.3" type="text/javascript">

// From "<A href="" target=_blank>Rethinking JavaScript Objects</A>"
// makes it easy to inherit/extend an object
Object.prototype.extend = function (oSuper) { 
       for (sProperty in oSuper) { 
               this[sProperty] = oSuper[sProperty]; 

// Banner(), a slideshow wrapper
// syntax:
//      var oVar = new Banner("oVar",url|urlarry [,target])
//      Note: oVar must be the same as the first parameter to Banner - "oVar"
//            the third parameter - target - is optional      
//            see <A href="#sample">sample use</A>
function Banner (id,url) { 
    //inherit methods and properties from slideshow()
    this.extend(new slideshow()); 

    //set inherited property 'name', required ref <A href="" target=_blank>slideshow documentation</A> = id;

    //set target if defined
    if (arguments[2]) = arguments[2];
    else = '_self';
    // images(), local method that adds images to the object
    this.images = function() {
            // Create a slide
            s = new slide();
            s.src =  arguments[i];
            if (typeof(url) == 'string')
       = url;
       = url[i];
            // inherited method, see <A href="" target=_blank>slideshow documentation</A>

<A name=sample></A>
// create the first banner object, all images points to the same location

var firstBanner = new Banner("firstBanner","","_blank");

// create the second banner object, each image points to a different location

var arrURLs = new Array(
var secondBanner = new Banner("secondBanner",arrURLs,"_blank");

// onload, init the banner objects and start them

function initBanner() {
    if (document.images) {
        // firstBanner
        // image, timeout, update() and play() are inherited,
        // see <A href="" target=_blank>slideshow documentation</A>
        firstBanner.image = document.images.BANNER1;
        firstBanner.timeout = 5000;
        // secondBanner
        secondBanner.image = document.images.BANNER2;
        secondBanner.timeout = 7000;
<BODY onLoad="initBanner();">

<!-- firstBanner.hotlink() is inherited, see <A href="" target=_blank>slideshow documentation</A> -->
<A href="javascript:void(0)" onClick="firstBanner.hotlink();return false;">
    <IMG name="BANNER1" src="" 
    width="468" height="60" border="0">

<A href="javascript:void(0)" onClick="secondBanner.hotlink();return false;">
  <IMG name="BANNER2" 
  width="468" height="60" border="0">

Have fun coding.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Per S
Web Developer
Norway Norway
No Biography provided

You may also be interested in...

Comments and Discussions

GeneralNightmare, not a dream Pin
darkoverlordofdata7-Jun-04 4:31
sussdarkoverlordofdata7-Jun-04 4:31 
GeneralAdRotator Pin
adrian7310-Oct-03 0:17
memberadrian7310-Oct-03 0:17 
GeneralRe: AdRotator Pin
Uwe Keim10-Oct-03 3:25
sitebuilderUwe Keim10-Oct-03 3:25 
GeneralRe: AdRotator Pin
adrian7310-Oct-03 4:03
memberadrian7310-Oct-03 4:03 
GeneralRe: AdRotator Pin
Uwe Keim10-Oct-03 4:11
sitebuilderUwe Keim10-Oct-03 4:11 
GeneralRe: AdRotator Pin
John Kendrick18-Oct-03 11:36
memberJohn Kendrick18-Oct-03 11:36 
GeneralRe: AdRotator Pin
Per Søderlind18-Oct-03 16:46
sussPer Søderlind18-Oct-03 16:46 
GeneralRe: AdRotator Pin
John Kendrick19-Oct-03 12:05
memberJohn Kendrick19-Oct-03 12:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.171114.1 | Last Updated 15 Oct 2003
Article Copyright 2003 by Per S
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid