Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   Problema con cuenta atrás y redirección (la función no me ve una variable externa) (http://www.forosdelweb.com/f13/problema-con-cuenta-atras-redireccion-funcion-no-variable-externa-591203/)

Kandorf 29/05/2008 02:36

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.

tunait 29/05/2008 02:54

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

Kandorf 29/05/2008 03:10

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.

tunait 29/05/2008 03:20

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. :arriba::cool:

Kandorf 29/05/2008 03:23

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.

tunait 29/05/2008 03:27

Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable
 
Cita:

Iniciado por Kandorf (Mensaje 2425025)
:O va, muchísimas gracias.

Muchísimas de nadas :arriba:

Cita:

Iniciado por Kandorf (Mensaje 2425025)
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 :cool:

Kandorf 29/05/2008 05:41

Respuesta: Problema con cuenta atrás y redirección (la función no me ve una variable
 
Cita:

Iniciado por tunait (Mensaje 2425033)
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 :$


La zona horaria es GMT -6. Ahora son las 06:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.