Newsgroup: it.comp.lang.javascript
Titolo: Script che cambia una frase

Sto cercando di creare uno script che mi cambi una frase ogni x secondi.
Ho creato questo:
<script>
var i;
var testo1;
var testo2;
var testo;
testo1 = "Buongiorno"
testo2 = "Arrivederci"
testo = testo1
function chtext() {
 if (testo = testo1) {testo = testo2}
 else if (testo = testo2) {testo = testo1};
 }
for (i; i++; i<1000) { setTimeout("chtext();", 1000);
       document.write(testo);}
</script>
ma non funziona. Qualcuno ha qualche idea a proposito?
Grazie.
ciao
gelty
--
Visita 
http://www.sifor.it
Elimina *toglimi* per le risposte


Prova in questo modo
<html>
<Script language="Javascript">
	var testo, testo1, testo2
	testo=""
	testo1="Primo"
	testo2="Secondo"
	function vai()
		{
			if (testo == testo1)
				{testo=testo2}
			else
				{testo=testo1}
		form1.messaggio.value=testo
		rid = setTimeout("vai()", 1000)	
		}
 
</script>
<body>
<form name="form1">
<input type=text value="" name="messaggio" size=25>
</form>
<Script>
	vai()
</script>
</body>
</hmtl>
Ho creato un form per la frase piuttosto che scriverla all'interno della
pagina.
(poichè quest'ultima soluzione genera un errore del browser)
Ciao
-- 
Giorgio

(poichè quest'ultima soluzione genera un errore del browser)
E' perfetta per Explorer, purtroppo con Netscape non funziona, mi dice che
form1 non e' definito... forse non accetta cambiamenti al volo di parti che
dovrebbero essere fisse. Boh...
Grazie lo stesso.



Hai ragione.
Sostituisci, nel codice che ti ho inviato, la riga seguente:
        form1.messaggio.value=testo
con:
         document.form1.messaggio.value=testo
in NS3 funziona.
Ciao
Giorgio
e-mail: 
gior...@lycosmail.com
sito: 
http://members.it.tripod.de/~cjsxg

in NS3 funziona.
Purtroppo in NS 4.5 no: mi dice document.form1.messaggio has no properties.



Hai scritto bene???? ---> document.form1.messaggio.value
e
non                  ---> document.form1.messaggio
Ho provato con NS4.6 e funziona


Ho provato con NS4.6 e funziona
Certo, ma secondo NS4.5 la proprieta' value non dovrebbe esistere! Boh...
Ho fatto alcune modifica rispetto allo script che avevi fatto tu:
1) ho usato una textarea invece di un input tipe=text;
2) all'interno del form si trova una tabella
3) lo script cambia due messaggi contemporaneamente, e non piu' uno solo.
Puo' dipendere da questo? (ma non credo...)


...
La versione proposta effettivamente funziona su IE4...sul Netscape devo
ancora provare, ma devo dire che ormai ho perso ogni speranza, per amore
della mia salute mentale ho deciso di fare pagine dinamiche "Explorer only!"
:-))
Vorrei solo dare un piccolo contributo di javascript nudo e crudo.
1) La funzione per swappare il testo...mi sembra che entrambi facciate
"giri" inutili, basterebbe:
testo = (testo == testo1) ? testo2 : testo1 ;
2) Il richiamo della funzione. Gelty usa un ciclo for, mentre tu la richiami
in un apposito script in fondo alla pagina. Ma non sarebbe meglio usare
setInterval, anziché setTimeout, così il loop si crea da solo?
Morale: questo script fa il lavoro che volete sulla barra di status, sia con
Explorer che con Navigator...se permettete, il modo con cui si accede via
DOM al form lo lascio ad altri più coraggiosi...
<SCRIPT language="Javascript1.1">
testo1 ="buongiorno" ;
testo2="arriverderci" ;
testo = testo1
   window.status = testo ;
function cambiaTesto() {
  window.status = testo ;
  testo = (testo == testo1) ? testo2 : testo1 ;
   }
setInterval("cambiaTesto()",2000)
</SCRIPT>
maghetto

setInterval, anziché setTimeout, cosě il loop si crea da solo?
Devo essere onesto? Non sapevo che esistesse... :-(
