Foros del Web » Programando para Internet » Javascript »

cambiar texto cada x segundos

Estas en el tema de cambiar texto cada x segundos en el foro de Javascript en Foros del Web. Hola a todos tengo el siguiente codigo. <SCRIPT language="javascript"> function frases_alea(){ frases = new Array(); frases[0] = "<a href='http://www.eurolloyd.es/seguros/seguros-de-coche/calcula-el-precio.html' onclick='openBack(this.href);return false;'>Consulta y beneficiate de nuestras ...
  #1 (permalink)  
Antiguo 12/12/2008, 04:07
 
Fecha de Ingreso: marzo-2006
Mensajes: 19
Antigüedad: 18 años, 9 meses
Puntos: 2
Pregunta cambiar texto cada x segundos

Hola a todos tengo el siguiente codigo.

<SCRIPT language="javascript">

function frases_alea(){

frases = new Array();

frases[0] = "<a href='http://www.eurolloyd.es/seguros/seguros-de-coche/calcula-el-precio.html' onclick='openBack(this.href);return false;'>Consulta y beneficiate de nuestras nuevas tarifas para el seguro de tu coche</a>";
frases[1] = "En Eurolloyd aplicamos los descuentos de tu seguro actual en nuestros precios";
frases[2] = "Si quieres seguridad para t&iacute; y los tuyos, <a href='http://www.eurolloyd.es/seguros/seguros-de-accidentes/precios-y-coberturas.html' onclick='openBack(this.href);return false;'>consulta nuestro seguro de accidentes para el motorista.</a>";
frases[3] = "Si te interesa nuestro precio, contrata tu seguro directamente desde nuestra p·gina web";

aleatorio=Math.floor(Math.random()*4);

return frases[aleatorio];

}

</SCRIPT>

Y mas abajo llamo a la funcion y hago un setInterval de 5 segundos.


<SCRIPT language="javascript">

timer = setInterval("frases_alea()", 5000);

document.write(timer);

</SCRIPT>


pues el caso es que en el document.write(timer) me saca un numero entero en vez de la frase aleatoria que es lo que yo quiero, aver si me acalarais como debo hacer unas frases aleatorias cada 5 segundos.

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 12/12/2008, 04:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: cambiar texto cada x segundos

Con document.write no podés hacer eso porque sobreescribís el documento. Pero tampoco lo usás bien ya que cuando asignás un setInterval a una variable, la variable asume el valor de un identificador numérico único que javascript crea para referenciar a ese setInterval (generalmente usado para hacer un clearInterval). Probá así:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
<
script>
function 
frases_alea(){

frases = new Array();

frases[0] = "<a href='http://www.eurolloyd.es/seguros/seguros-de-coche/calcula-el-precio.html' onclick='openBack(this.href);return false;'>Consulta y beneficiate de nuestras nuevas tarifas para el seguro de tu coche</a>";
frases[1] = "En Eurolloyd aplicamos los descuentos de tu seguro actual en nuestros precios";
frases[2] = "Si quieres seguridad para t&iacute; y los tuyos, <a href='http://www.eurolloyd.es/seguros/seguros-de-accidentes/precios-y-coberturas.html' onclick='openBack(this.href);return false;'>consulta nuestro seguro de accidentes para el motorista.</a>";
frases[3] = "Si te interesa nuestro precio, contrata tu seguro directamente desde nuestra p·gina web";

aleatorio=Math.floor(Math.random()*4);

return 
frases[aleatorio];

}
onload=function(){
    
document.getElementById('algo').innerHTML=frases_alea();
    
setInterval(function(){document.getElementById('algo').innerHTML=frases_alea();},5000)
}
</script>




</head>

<body>
<div id="algo"></div>
</body>
</html> 

Última edición por Panino5001; 12/12/2008 a las 04:38
  #3 (permalink)  
Antiguo 12/12/2008, 06:18
 
Fecha de Ingreso: marzo-2006
Mensajes: 19
Antigüedad: 18 años, 9 meses
Puntos: 2
Respuesta: cambiar texto cada x segundos

gracias por responder, lo e probado y e comprendido que se debe inyectar el contenido de la funcion frases_alea() en una capa y no utilizar el document.write.

Pero lo que me pasa con esto ahora es que no me muestra absolutamente nada en la capa, utilizando el mismo codigo que me pasates.
  #4 (permalink)  
Antiguo 12/12/2008, 06:26
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: cambiar texto cada x segundos

Exactamente el mismo no debe ser, porque lo probé en varios navegadores y funciona ok. Fijate si asignaste correctamente el id a la capa y respetaste la ubicación de la llamada al onload. También es posible que tengas otro onload en otro lado. Luego contanos.
  #5 (permalink)  
Antiguo 15/12/2008, 05:22
 
Fecha de Ingreso: marzo-2006
Mensajes: 19
Antigüedad: 18 años, 9 meses
Puntos: 2
Respuesta: cambiar texto cada x segundos

Si tenias razon si que me funciona las frases aleatorias en todos los navegadores y me e dado cuenta del por que no me salia.

estoi desarrollando digamos una especie de pagina de espera para cargar unos datos lo ago con estas funciones.

<SCRIPT language="javascript">

var DHTML = (document.getElementById || document.all || document.layers);


function ap_getObj(name) {

if (document.getElementById){
return document.getElementById(name).style; }
else if (document.all){
return document.all[name].style;
} else if (document.layers){
return document.layers[name];
}

}

function ap_showWaitMessage(div,flag) {



if (!DHTML) return;

var x = ap_getObj(div);

x.visibility = (flag) ? 'visible':'hidden'


if(! document.getElementById)

if(document.layers)

x.left=280/2;

return true;

}


ap_showWaitMessage('waitDiv',3);






</SCRIPT>


bueno el caso es que la capa algo no me la muestra yo creo que es que con esta funcion el innerhtml no me muestra el codigo de la capa por que lo saco y si me muestra su contenido.


<div ID="waitDiv" style="position:absolute;left:600;top:1000;visibil ity:hidden">
<table cellpadding="6" cellspacing="0" border="0" bgcolor="#ffffff" style="padding-left:350px;" bordercolor="red">
<tr>
<td align=center>
<br><br><br><br>
<font color="red" face="Verdana" size="4">Estamos buscando los mejores precios.</font><br><br>

<div id="algo"></div>

<br><br>
<img src="cargando.gif" border="0" >
<br><br><br><br><br><br><br>
</td>
</tr>
</table>
</div>


espero que conozcais alguna solucion muchas gracias.
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 15:26.