Foros del Web » Programando para Internet » Javascript »

Cambiar texto en pantalla por otro

Estas en el tema de Cambiar texto en pantalla por otro en el foro de Javascript en Foros del Web. Hola: Estoy buscando una funcion que me permita cambiar una frase que está en pantalla cada x segundos sin recargar la pagina. Les paso un ...
  #1 (permalink)  
Antiguo 02/07/2003, 17:34
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires
Mensajes: 30
Antigüedad: 21 años, 5 meses
Puntos: 0
Cambiar texto en pantalla por otro

Hola:

Estoy buscando una funcion que me permita cambiar una frase que está en pantalla cada x segundos sin recargar la pagina.

Les paso un ejemplo

<html>

<head>
</head>
<body>
<p>Acá esta la frase</p>
</body>
</html>

Quiero cada x segundos cambiar el texto "Acá esta la frase" por otro sin recargar la pagina.
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 02/07/2003, 18:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola MuleFans:

Puedes hacerlo entre otras maneras: poniéndole un ID al tag donde quieres que se vea la frase y una función que la actualice, o dejando la frase en un elemento de formulario, al que puedes aplicar estilos para que se vea bien (hasta donde se pueda)

Básicamente hay que hacer un array de frases:
var frase = [
"En boca cerrada no entran moscas",
"A rio revuelto, ganancia de pescador",
"Al que madruga Dios le ayuda"
];

Perdona por los ejemplos pero son los que se me ocurrieron...

luego pensar en la función para cambiar el índice de las frases, y por último actualizar la página con la frase:

Voy a improvisar con las frases de más arriba, y sumando 1 al índice...

var voy = 0;

function frasesita() {
document.getElementById("LaFrase").innerHTML = frase[voy++ % frase.length];
setTimeout("frasesita()", 5000);
}

<body onload="frasesita()">
<p id="LaFrase"></p>

Dime si te sirve, y si quieres que te explique como funciona.
Este ejemplo debería cambiar la frase por la siguiente cada 5 segundos.

Saludos
  #3 (permalink)  
Antiguo 03/07/2003, 20:26
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires
Mensajes: 30
Antigüedad: 21 años, 5 meses
Puntos: 0
Muchas Gracias caricatos !!!
Anda perfecto.
Saludos.
www.mulefans.com.ar
  #4 (permalink)  
Antiguo 04/07/2003, 01:30
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Hola a los dos!!

caricatostu ejemplo es muy ingenioso! Me gusta mucho, pero ya sabes lo que ocurre con el innerHTML... no es del todo compatible con todos los navegadores. ¿No habría otra forma de hacerlo?
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 04/07/2003, 02:38
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola a los tres.

Otra forma, que tampoco se si será compatible con todos los navegadores, pódría ser:

<p id="pru">-</p> (Hay que poner algo en el párrafo para que funcione)

Y se cambia con:

elem=document.getElementById('pru');
elem.firstChild.nodeValue='Lo que sea';

Saludos,
  #6 (permalink)  
Antiguo 04/07/2003, 02:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

MuleFans: Me alegra que te sirviera, pero tal como dice KarlanKas(Hola ) es un método no del todo compatible con antiguos navegadores (opera 6.05 es relativamente moderno y no funciona bien, y los más viejos funcionan peor).

Una solución que debería funcionar en todos es poniendo las frases en un elemento de formulario, como puede ser un textarea:

<form name=frases>
<textarea name="actual" cols="70" rows="3" readonly
style="align:center; background-Color:#eeffff; border-Style:none; text-Align:center; font-style:italic; font-weight:900; color: blue; overflow:hidden; "></textarea>
</form>

... para este caso la función frasesita sería:
function frasesita() {
document.forms.frases.actual.value = frase[voy++ % frase.length];
setTimeout("frasesita()", 5000);
}

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.