Incompatibilità tra javascritp

Mimmo82

Nuovo Utente
5 Set 2010
16
0
1
Ciao a tutti...

premetto che son abbastanza ignorante di questi linguaggi di programmazione ma la passione e la voglia mi anima ad andare avanti...

cosi realizzando il mio sito, avevo bisogno di far ruotare un banner lincabile (cioè 2 immagini lincate a 2 siti diversi, che ruotano ogni 10 secondi).

Bene, questo JS mi da un problema anomalo, praticamente quando lo eseguo sulla mia pagina index, in una frazione di tempo che visualizzo la pagina subito mi ributta su una pagina bianca con questo banner che inizia a ruotare.
Facendo un po di prove in lungo e in largo, ho notato che se tolgo il JS che mi carico un immagine di sfondo, il fenomeno su elencato non si verifica.STRANO...

Allora lo sfondo lo carico cosi :

HTML:
<body onload="fixedBackground('sfondo.jpg');">
Mentre il banenr ruotante ha il seguente JS:

HTML:
function Banner(refreshTime, width, height, altText, start, random){
    this.objName = "bannerAd" + (Banner.count++);
    eval(this.objName + "=this");
    if (!refreshTime) this.refreshTime = 5000; else this.refreshTime = refreshTime*1000;
    if (!width) this.width = 180; else this.width = width;
    if (!height) this.height = 150; else this.height = height;
    if (random == null) this.random = 1; else this.random = random;
    this.altText = altText;
    this.ads = [];
    if (start) this.currentAd = start-1; else start = null;
    this.mySize = 0;

    this.Ad = function(src, href, target, mouseover) {
        var tempImage = new Image();
        tempImage.src = src;
        this.ads[this.mySize] = new Object();
        var ad = this.ads[this.mySize];
        ad.src = src;
        if (typeof(target) == "undefined" || target == null) ad.target = "_self"; else ad.target = target;
        ad.href = href;
        ad.mouseover = mouseover;
        this.mySize++;
    }

    this.link = function(){
        var    ad = this.ads[this.currentAd];
        if (ad.target == "_self"){
            location.href = ad.href;
        }
        else if (ad.target == "_blank" || ad.target == "_new"){
            open(ad.href,this.objName + "Win");
        }
        else top.frames[ad.target].location.href = ad.href;
    }

    this.showStatus = function(){
        var ad = this.ads[this.currentAd];
        if (ad.mouseover) status = ad.mouseover;
        else status = ad.href;
    }

    this.randomAd = function(){
        var n;
        do { n = Math.floor(Math.random() * (this.mySize)); } 
        while(n == this.currentAd);
        this.currentAd = n;
    }

    this.output = function(){
        var tempCode = "";
        if (this.mySize > 1){
            if (this.currentAd == null) this.randomAd();
            if (this.currentAd >= this.mySize) this.currentAd = this.mySize - 1;
            tempCode = '<a href="javascript:'+this.objName+'.link();"';
            tempCode += ' onMouseOver="' + this.objName + '.showStatus(); return true"';
            tempCode += ' onMouseOut="status=\'\';return true">';
            tempCode += '<img src="' + this.ads[this.currentAd].src + '" width="' + this.width;
            tempCode += '" name="' + this.objName + 'Img" height="' + this.height + '" ';
            if (this.altText) tempCode += 'alt="'+this.altText + '" ';
            tempCode += 'border="0" /></a>';
            document.write(tempCode);
            this.nextAd();
        } else document.write("Error: two banners must be defined for the script to work.");
    }

    this.newAd = function(){
        if (!this.random){    
            this.currentAd++;
            if (this.currentAd >= this.mySize)
               this.currentAd = 0;
        }
        else {
            this.randomAd();
        }
        this.nextAd();
    }

    this.nextAd = function(){
        document.images[this.objName+ 'Img'].src = this.ads[this.currentAd].src;
        setTimeout(this.objName+'.newAd()',this.refreshTime)
    }
}

Banner.count = 0;
e lo richiamo cosi :

HTML:
<script type="text/javascript">
myAd = new Banner( 3, 180, 150, "Clicca", 1, 0 );
myAd.Ad( "ban1.gif", "google.it", null, "Ciao!" );
myAd.Ad( "ban2.gif", "ciao.it", null, "Testo" );
myAd.output();

</script>
Come è possibile che son incompatibili 2 js?Anche perche quello script per il banner rotante mi serve per altri 7 spazi illustrativi di foto...

Qualcuno ha avuto la mia stessa "dis-avventura"?