Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Error en window.setTimeOut() (https://www.clubdelphi.com/foros/showthread.php?t=32235)

Diavlo 31-05-2006 17:38:06

Error en window.setTimeOut()
 
Código:

<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:

Código PHP:

<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(0contadorCaracteres++);
  
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:

Código:

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:

Código:

texto = texto.substring(1, tam) + x;
Se ve más claramente aún si lo comparamos con esta otra:

Código:

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

Diavlo 12-06-2006 18:14:36

Cita:

Empezado por seoane
Sin entender practicamente nada de javascript creo que el fallo esta en las comillas:

Código:

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:

Código:


<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()">



La franja horaria es GMT +2. Ahora son las 10:49:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi