PDA

Ver la Versión Completa : Error en window.setTimeOut()


Diavlo
31-05-2006, 17:38:06
<script language="JavaScript">
var texto = " Texto A Mostrar ";
var tam = texto.length;
function mover(){
x = texto.charAt(0);
texto = texto.substring(1,tam)+x;
window.setTimeOut(mover(),1000);
}
</script>


<body onload="mover()>


Por q me sale el siguiente error???

stack overflow at line: 0

Emilio
31-05-2006, 18:25:26
Me da que esa es una función recursiva sin salida, lo hace hasta que gasta la pila.

Diavlo
02-06-2006, 00:30:39
Y como podria solucionar eso???
Lo q hace el script (hasta q sale el error) es mostrar un texto q se desplaza en la barra de estado.

dec
02-06-2006, 01:14:08
Hola,

Hay varios Scripts en la Web, a poco que busques. Yo me basé en uno para escribir esto:


<script type="text/javascript">
//<![CDATA[

var textoBarraEstado = "Texto a mostrar en la barra de estado ";
var contadorCaracteres = 1;

function MarquesinaBarraEstado()
{
if(contadorCaracteres == textoBarraEstado.length)
contadorCaracteres = 1;

window.status = textoBarraEstado.substring(0, contadorCaracteres++);
window.setTimeout("MarquesinaBarraEstado()", 100);
}

//]]>
</script>


Lo probé en Internet Explorer y FireFox. En este último ha de estar permitido por el usuario el que se cambie el texto de la barra de estado: esto se consigue desde el menú de opciones de FireFox, en las opciones avanzadas de JavaScript.

seoane
02-06-2006, 01:31:24
Sin entender practicamente nada de javascript creo que el fallo esta en las comillas:


window.setTimeOut("mover()",1000);

dec
02-06-2006, 13:42:32
Hola,

Lo de las comillas es sin duda un problema, pero, diría que el fallo del Script se encuentra en esta instrucción:


texto = texto.substring(1, tam) + x;


Se ve más claramente aún si lo comparamos con esta otra:


window.status = textoBarraEstado.substring(0, contadorCaracteres++);

Diavlo
12-06-2006, 18:14:36
Sin entender practicamente nada de javascript creo que el fallo esta en las comillas:


window.setTimeOut("mover()",1000);


Creo q si ese fue el error, por q cuando le puse las comillas empezo a funcionar sin errores pero luego me di cuenta q no era lo q yo queria, el efecto del texto desplazandose salio pero no era como yo lo esperaba primero sale a una determinada velocidad y luego mas rapido y luego de nuevo mas lento, mas rapido, mas lento; pero quisiera q lo vieran ustedes mismos este es el nuevo codigo del script:


<script language="JavaScript">
var texto = " Texto A Mostrar ";
var tam = texto.length;
function mover(){
x = texto.charAt(0);
texto = texto.substring(1,tam)+x;
window.status = texto.substring(1,tam)+x;
window.setTimeout("mover()",200);
}
</script>


<body onload="mover()">