Foros del Web » Programando para Internet » Javascript »

Script que falla

Estas en el tema de Script que falla en el foro de Javascript en Foros del Web. Alguien sabe porq me falla este script? <html> <head> <title>Documento sin t&iacute;tulo</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <script language="JavaScript"> var cont=0; var palabra = "Espere ...
  #1 (permalink)  
Antiguo 20/12/2004, 13:57
 
Fecha de Ingreso: junio-2004
Mensajes: 232
Antigüedad: 19 años, 11 meses
Puntos: 0
Script que falla

Alguien sabe porq me falla este script?

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<script language="JavaScript">
var cont=0;
var palabra = "Espere un momento por favor";
var punt = ".";
function punto(){
if(cont<=4){
palabra = palabra + punt;
document.write(palabra);
cont++;
setTimeout("punto()",500);
}
}
</script>
<body>
<script>
punto();
</script>
</body>
</html>

Lo que quiero hacer es q me aparezca una frase en la pantalla y cada segundo que pase me ponga un punto al final de la frase (añadiendose a la frase) hasta q forme algo parecido a esto:

Espere un momento por favor....
  #2 (permalink)  
Antiguo 20/12/2004, 14:06
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, Helheim
Prueba a quitar las comillas:
setTimeout(punto(),500);
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 20/12/2004, 14:13
 
Fecha de Ingreso: junio-2004
Mensajes: 232
Antigüedad: 19 años, 11 meses
Puntos: 0
si le quito las comillas me sale esto:

Espere un momento por favor.Espere un momento por favor..Espere un momento por favor...Espere un momento por favor....Espere un momento por favor.....

y evidentemente no quiero q me salga asi ... solo quiero q se acumulen los puntos tras la frase jejeje
  #4 (permalink)  
Antiguo 20/12/2004, 14:26
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Bueno, entonces está claro, la llamada a la función funciona, lo que hay que cambiar es lo que hace ésta:
function punto(){
if(cont<=4){
if(cont==1) document.write(palabra);
document.write(punt);
cont++;
setTimeout(punto(),500);
}
}
__________________
Angel :cool:
  #5 (permalink)  
Antiguo 20/12/2004, 14:33
 
Fecha de Ingreso: junio-2004
Mensajes: 232
Antigüedad: 19 años, 11 meses
Puntos: 0
Sigue sin ir de ninguna manera he intentao arreglarlo pero sigo sin encontrar el fallo
  #6 (permalink)  
Antiguo 20/12/2004, 14:38
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Cita:
Iniciado por Helheim
Sigue sin ir de ninguna manera
¿De ninguna manera? Algo hará, explica qué es, si no será imposible arreglarlo.
Si antes te salía el texto repetido, ¿qué sale ahora?
__________________
Angel :cool:
  #7 (permalink)  
Antiguo 20/12/2004, 14:43
 
Fecha de Ingreso: junio-2004
Mensajes: 232
Antigüedad: 19 años, 11 meses
Puntos: 0
A ver he cambiao la funcion q tenia yo por esa q has puesto tu y ahora lo unico q me muestra en pantalla son tres puntos con un fallo de javascript en la linea 16 q es precisamente la linea donde está el setTimeout. Supuestamente el fallo está en q en tu funcion no le pones las comillas dobles, asi q se las pongo yo pero al ponerselas me sigue fallando y solo me muetra un punto.
  #8 (permalink)  
Antiguo 20/12/2004, 14:59
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
He consultado y en efecto hay que poner las comillas.
Pero se detiene en un bucle infinito tras poner el segundo punto, que además se escribe borrando el texto anterior.
No sé qué está pasando.
__________________
Angel :cool:
  #9 (permalink)  
Antiguo 20/12/2004, 15:10
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Parece que el problema está en escribir en la página, que antes de que se repita el script ya se ha completado. Sí funciona escribiendo en una caja de texto:
Código HTML:
<head>
<SCRIPT language="JavaScript" type="text/javascript">
var cont=0;
var palabra = "Espere un momento por favor";
var punt = ".";
function punto(){
	if(cont<=4){
		if(cont==0) document.formu.mensaje.value=palabra;
		document.formu.mensaje.value+=punt;
		cont++;
		t = setTimeout("punto()",500);
	}
	else clearTimeout(t);
}
</script>
</head>
<body>
<form name="formu">
<input type="text" name="mensaje" size="60">
</form>
<SCRIPT language="JavaScript" type="text/javascript">
punto();
</script>
</body> 
Puedes "camuflar" la caja de texto así:
Código HTML:
<head>
<style>
.camuflado {
	font-family: Serif;
	border-width:0;
}
</style>
</head>
<body>
<input type="text" name="mensaje" size="60" class="camuflado" >
</body> 
__________________
Angel :cool:

Última edición por angsanchez; 20/12/2004 a las 15:16
  #10 (permalink)  
Antiguo 21/12/2004, 07:50
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 5 meses
Puntos: 5
Esto era para una barra de avance pero lo modifique y creo que quizas tambien te pueda funcionar...
Código:
<html>
<head>
</head>
<BODY>
<BR><BR>
	<table align="center">
	<tr>
		<td>
		<div>Espere un momento por favor
		<span id="p1" style="font-size:1px;">&nbsp;&nbsp;&nbsp;</span>
		<span id="p2" style="font-size:1px;">&nbsp;&nbsp;&nbsp;</span>
		<span id="p3" style="font-size:1px;">&nbsp;&nbsp;&nbsp;</span>
		</div>
		</td>
	</tr>
	</table>
<script language="javascript">
	var pFinaliza = 3; var color='black';var milisegs = 1000; var hasta = pFinaliza;var reloj;

	function rehace() {
    for (var i = 1; i <= pFinaliza; i++) document.getElementById('p'+i).style.backgroundColor = 'transparent';
    hasta = 0;}

	function genera() {
	    hasta++;
	    if (hasta > pFinaliza) rehace();
	    else document.getElementById('p'+hasta).style.backgroundColor = color;
	    reloj = setTimeout('genera()',milisegs);}

	function pausa() {
	    relojcomienza(reloj);
	    rehace();}
		genera();        
</script>
</body>
</html>
__________________
Yanira

Última edición por Yanix; 21/12/2004 a las 07:56
  #11 (permalink)  
Antiguo 21/12/2004, 17:11
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Muy bueno, Yanix
__________________
Angel :cool:
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 14:55.