Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    21

    rotazione casuale banner swf senza reload

    Ciao a tutti...avrei bisogno del vostro aiuto...
    Vorrei mettere in rotazione sulla stessa pagina + banner swf in questo modo:
    - al caricamento della pagina viene caricato a caso uno degli n banner swf;
    - dopo un tot di tempo viene caricato il banner successivo e così via...
    Tutto questo evitando che al caricamento di ogni banner ci sia un reload della pagina.
    Da html.it ho scaricato un esempio che potrebbe andare bene, ma non so come sostituire object a img:
    codice:
    <script type="text/javascript" language="JavaScript">
    <!--
    ejs_banurl = new Array;
    ejs_banimageUrl=new Array;
    
    ejs_banimageUrl[0] = "ban1.gif";
    ejs_banurl[0] = "http://www.html.it";
    
    ejs_banimageUrl[1] = "ban2.gif";
    ejs_banurl[1] = "http://www.html.it";
    
    ejs_banimageUrl[2] = "ban3.gif";
    ejs_banurl[2] = "http://www.html.it";
    
    affiche = false;
    
    function AffichePub()
       {
       if(!affiche)
          {
          numimage= Math.round(Math.random()*(ejs_banurl.length-1));
          document.write ('[img]' + ejs_banimageUrl[numimage] + '[/img]')
          affiche = true;
          }
       else
          {
          if(numimage == (ejs_banurl.length-1))
             numimage = 0;
          else
             numimage++;
          document.ejs_banpub.src=ejs_banimageUrl[numimage];
          }
       setTimeout("AffichePub()",3000);
       }
    
    AffichePub();
    
    //-->
    </script>
    Qualcuno può darmi una mano?
    Grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    21
    Forse ho quasi risolto...mi servirebbe un aiutino finale perché sono poco pratica di Javascript:
    riesco a caricare 2 banner ma al terzo mi da errore di runtime...qualcuno mi sa dire qual é l'errore nel mio JavaScript?

    Ecco il codice:

    codice:
    <script type="text/javascript" language="JavaScript">
    <!--
    banner=new Array;
    
    banner[0] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="644" height="80" id="bannerElecom" align=""><param name=movie value="bannerElecom.swf"><param name=quality value=high><embed src="bannerElecom.swf" quality=high  width="644" height="80" name="bannerElecom" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>';
    
    banner[1] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="644" height="80" id="bannerSport" align=""><param name=movie value="bannerSport.swf"><param name=quality value=high><embed src="bannerSport.swf" quality=high  width="644" height="80" name="bannerSport" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>';
    
    banner[2] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="644" height="80" id="bannerDiMascio" align=""><param name=movie value="bannerDiMascio.swf"><param name=quality value=high><embed src="bannerDiMascio.swf" quality=high  width="644" height="80" name="bannerDiMascio" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>';
    
    caricato = false;
    
    function caricaBanner() {
       if(!caricato) {
          numimage = Math.round(Math.random()*(banner.length-1));
          document.write(banner[numimage]);
          caricato = true;
       }
       else {
    		if(numimage == (banner.length-1)) {
             numimage = 0;
    		}
          else {
             numimage++;
          }
    		document.write(banner[numimage]);
    	}
       setTimeout("caricaBanner()",3000);
    }
    
    caricaBanner();
    
    //-->
    </script>
    Grazie!

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se richiami un document.write in fase di rendering scrivi nel documento
    se lo richiami a documento completamente renderizzato sovrascrivi tutto il documento con uno creato al volo che contiene solo quanto scritto da document.write
    ( = il tuo script non esiste piu', da qui l' errore)

    questo e' quello sbagliato
    codice:
    function caricaBanner() {
       if(!caricato) {
          numimage = Math.round(Math.random()*(banner.length-1));
          document.write(banner[numimage]);
          caricato = true;
       }
       else {
    	if(numimage == (banner.length-1)) {
            	numimage = 0;
    	}
    	else {
    		numimage++;
    	}
    	document.write(banner[numimage]);
       }
       setTimeout("caricaBanner()",3000);
    }
    prova cosi'
    codice:
    function caricaBanner() {
       if(!caricato) {
          numimage = Math.round(Math.random()*(banner.length-1));
          document.write('div id="randombanner"'>+banner[numimage]+'</div>');
          caricato = true;
       }
       else {
    	if(numimage == (banner.length-1)) {
            	numimage = 0;
    	}
    	else {
    		numimage++;
    	}
    	document.getElementById('randombanner').innerHTML=banner[numimage];
       }
       setTimeout("caricaBanner()",3000);
    }
    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    21
    Grazie Xinod per l'aiuto.

    Ho sostituito il codice con quello che mi hai dato e creato un elemento div con id="randombanner".
    Ora me li carica tutti, però mi scrive 'True' prima del banner e attende per caricare il primo banner il tempo specificato in SetTimeout.
    Come posso eliminare questi due problemi?

    Posso approfittare di te per un'altra domanda da profana?
    Con uno script di rotazione banner che usavo precedentemente c'era il problema che in alcuni casi si creava un fastidioso sfarfallio della pagina ad ogni cambiamento di banner...
    sai dirmi a cosa è dovuto (refresh di pagina?) e suggerirmi uno script per evitarlo?

    Grazie

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusa, questo
    document.write('div id="randombanner"'>+banner[numimage]+'</div>');
    andava almeno scritto cosi'
    document.write('<div id="randombanner">'+banner[numimage]+'</div>');
    e creato un elemento div con id="randombanner"
    se il div con id="randombanner" lo scrive con document.write non devi scriverlo tu nell' xhtml

    per quanto riguarda lo sfarfallio non ho presente,
    lascia un link dove e' visibile e specifica con quale browser vedi lo sfarfallio

    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    21
    Ora funziona tutto...e non ci sono problemi di sfarfallio.
    Grazie grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.