Newsgroup: it.comp.lang.javascript
Titolo: Testo ciclico

Salve a tutti, dovrei fare una pagina con del testo che cambia ciclicamente
(senza scorrimenti nè effetti particolari).
Al momento faccio ricaricare tutta la pagina visto che il solo contenuto è
proprio quello che deve cambiare, ma la cosa non mi soddisfa perchè c'è un
piccolo ritardo nel visualizzare lo sfondo (lo so che potrei giocare con la
visibilità dei layers, ma per funzionare sia su IE sia su NN dovrei fare 2
versioni della stessa pag)
Qualcuno sa come evitare tutto ciò???
Spero di essere stato chiaro
Grazie k
Gionata

Il Mon, 15 Jan 2001 00:59:43 +0100, Gionata Vatteroni ha scritto.....

Non è necessario scrivere due pagine separate, basta usare document.write() per 
scrivere nel documento la giusta sintassi per IE e NN.
Lo script che segue funziona su IE4 e su NN4.7
Non ho versioni più recenti dei browser, ma credo (sottolineo: _CREDO_) che 
vada bene anche per IE5+, mentre non funziona sicuramente per NN6.
Attenzione alle righe lunghe, le ho evidenziate quando necessario:
<SCRIPT>
<!--
var ie = document.all?true:false;
// Layer per IE4 - tutta una riga ! ! !
var ielayer = "<DIV ID=\"testo\" 
STYLE=\"position:absolute;left:200;top:200;width:200;height:10;visibility:visib
le;\"> </DIV>";
// Layer per NN4 - tutta una riga ! ! !
var nnlayer = "<LAYER NAME=\"testo\" position=\"absolute\" left=\"200\" 
top=\"200\" width=\"200\" height=\"20\" visibility=\"show\" 
CLIP=\"0,0,200,20\"> </LAYER>"
// viene scritta nel documento la giiusta sintassi di layer (IE o NN4)
document.writeln(ie?ielayer:nnlayer);
// viene assegnata alla variabile la giusta sintassi per accedere al layer
var layertesto = ie?document.all.testo:document.layers.testo.document;
// Le frasi vanno inserite in un array, ATTENZIONE alle virgolette!!!
var frasi = new Array();
frasi[0] = "frase 0";
frasi[1] = "frase 1";
frasi[2] = "frase 2";
frasi[3] = "frase 3";
frasi[4] = "frase 4";
// variabili di servizio
var frasilen = frasi.length-1;frase=0;
// funzione che cicla nell'array mostrando le frasi.
function mostra() {
	if (ie)
		layertesto.innerHTML=frasi[frase];
		else {
		layertesto.write(frasi[frase]);
		layertesto.close();
		}
	frase==frasilen?frase=0:frase++;
	timer=setTimeout("mostra()",1000);
	}
// prima esecuzione della funzione
// puoi anche metterlo nel BODY usando onLoad()
timer=setTimeout("mostra()",1000);
//-->
</SCRIPT>
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
               Nessun traguardo è abbastanza lontano.
------------------------------------------------------------------------

 ha scritto nel messaggio
news:3a623...@news.dada.it...

Ma non puoi semplicemente creare un livello e scriverci dentro con innerHTML
per IE e NN6 e document.layers[id].document.write per NN4??
 andreotta fabiano
 WebMªster ATI POWER s.n.c.
 
andr...@atipower.it
 
http://www.atipower.it
    -new-
 
http://www.aticommerce.com
 
http://www.afdsoftware.freeweb.org
 
http://www.jsdir.com

Grazie, molto utile e chiari.
 Gionata
P.S. scusate se rispondo da deja, ma non so come mai non riesco a
vedere le vostre risposte con outlook!!!
Sent via Deja.com
http://www.deja.com/