Foros del Web » Programando para Internet » Javascript »

Problema con cuenta atrás y redirección (la función no me ve una variable externa)

Estas en el tema de Problema con cuenta atrás y redirección (la función no me ve una variable externa) en el foro de Javascript en Foros del Web. Buenas, estoy haciendo una página en la que si un usiario está más de un tiempo determinado se le redirija a otra página y vaya ...
  #1 (permalink)  
Antiguo 29/05/2008, 02:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Problema con cuenta atrás y redirección (la función no me ve una variable externa)

Buenas, estoy haciendo una página en la que si un usiario está más de un tiempo determinado se le redirija a otra página y vaya mostrando un contador con los segundos que faltan. He encontrado un código y lo he midificado, pero no sé por qué no me va, de javascript entiendo muy poquito, al mostrar el valor de la variable "seconds" me pinta NaN, que por lo visto significa Not a Number:

Código:
var timer=0;
var seconds=100;

function actualiza()
{
    seconds--;
    if (seconds<=-1)
    {
    	window.location="index.php";
    }
    var write='Quedan '+seconds+' segundos';
    var situa=document.getElementById('capa0');
    situa.innerHTML=write;
    
    timer=setTimeout("actualiza()",1000);
}
Creo que lo que pasa es que no ve la variable desde dentro de la función, porque si comento la línea en la que pone "seconds--;" me en vez de NaN me pone "undefined", creo que con esa línea realmente lo que estoy haciendo es declararla, al no ver la que hay fuera.

Saludos y gracias.
  #2 (permalink)  
Antiguo 29/05/2008, 02:54
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable

Hola

acabo de probar el script y me funciona correcto en FF y en IE6
  #3 (permalink)  
Antiguo 29/05/2008, 03:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable

>.< bien... pues no sé, a mí no me va, ni en FireFox ni en iExplorer, le llevo dando vueltas desde las 9...

No sé si será por el sitio en el que tengo declaradas las variables, aunque según creo no importa el sitio en el que estén declaradas...
Por si resulta de ayuda, copio el código hasta el head, pro si acaso es que lo tengo declarado donde no debo o yo qué sé...

Código:
<!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=utf-8"windows-1250" />
<title></title>
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 24px;
	color: #000000;
	font-weight: bold;
}
body {
	background-image: url(images/background.jpg);
	background-repeat: no-repeat;
	margin-left: 0px;
	margin-top: 0px;
}
.Estilo1 {color: #454545}
-->
</style>
<script type="text/javascript">
<!--
Branch = new integer;

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var timer=0;
var seconds=100;

function actualiza()
{
    seconds--;
    if (seconds<=-1)
    {
    	window.location="index.php";
    }
    var write='Quedan '+seconds+' segundos';
    var situa=document.getElementById('capa0');
    situa.innerHTML=write;
    
    timer=setTimeout("actualiza()",1000);
}

//-->
</script>
</head>
Gracias por tu respuesta.
  #4 (permalink)  
Antiguo 29/05/2008, 03:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable

Hum, te pierde agua por aquí

Branch = new integer;


Si quitas esa línea te irá bien el resto.
  #5 (permalink)  
Antiguo 29/05/2008, 03:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable

:O va, muchísimas gracias.

A ver si trae alguna consecuencia haber quitado esa línea, creo que la generó el Dreamweaver él solito.

Saludos.
  #6 (permalink)  
Antiguo 29/05/2008, 03:27
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable

Cita:
Iniciado por Kandorf Ver Mensaje
:O va, muchísimas gracias.
Muchísimas de nadas

Cita:
Iniciado por Kandorf Ver Mensaje
A ver si trae alguna consecuencia haber quitado esa línea, creo que la generó el Dreamweaver él solito.
No creo, al menos en la parte que me has puesto es la única línea en la que aparece la variable Branch, así que no creo que nada la llame (salvo que más adelante haya más código)

Igual esa línea es que da error (el navegador no sabe lo que es integer) así que tampoco creo que se pueda hacer mucho con ella

Un saludo
  #7 (permalink)  
Antiguo 29/05/2008, 05:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 18
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable

Cita:
Iniciado por tunait Ver Mensaje
Igual esa línea es que da error (el navegador no sabe lo que es integer) así que tampoco creo que se pueda hacer mucho con ella
Aaaah claro, esa línea es que la escribí yo al principio, cuando tenía menos idea de javascript que ahora, porque la necesitaba para una función, pero la cambié.

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 10:41.