Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: bemone en 18 Marzo 2014, 05:03 AM

Título: SetInterval no esta declarado.
Publicado por: bemone en 18 Marzo 2014, 05:03 AM
Hola foreros, ando con un problema que me esta comiendo el coco, cabe aclarar que es la primera vez que toco javascript en mi vida.

Mi problema esta en el ultimo SetInterval. Justamente este:

Código (javascript) [Seleccionar]

SetInterval(function(){ location.reload(true); }, Math.floor((Math.random() * intervaloMax) + intervaloMin));


Lo que busco es recargar la pagina cada 1 o 2 minutos. Probe un monton de formas que habia en internet y nada, no puedo hacerlo andar :-(
El navegador me responde con un rotundo:

CitarReferenceError: SetInterval is not defined

Código (javascript) [Seleccionar]

var intervaloMin = 60000;
var intervaloMax = 120000;
var nMiliMin = 1800000;
var nMiliMax = 2100000;

function arreglarHora(hora, valor) {
return hora+valor-3;
}

function refrescar(){
location.reload(true);
}

function hacerBump() {

       var nHora;
var nMinutos;
var nHoraActual;
var nMinutosActual;
var bActivar = true;

// Tomamos la hora del ultimo bump
var tf2UltimoBump = document.getElementsByTagName("time");
var aux = tf2UltimoBump[0].attributes[1].value;
var tiempo = aux.substr(15);
// --------------------------------

nHora = parseInt(tiempo, 10);

if(nHora <= 9)
nMinutos = parseInt(tiempo[2]+tiempo[3], 10);
else
nMinutos = parseInt(tiempo[3]+tiempo[4], 10);

   if(nHora < 12)
nHora = arreglarHora(nHora, 0);
   else
       nHora = arreglarHora(nHora, 12);

var date =  new Date();
nHoraActual = date.getHours();
nMinutosActual = date.getMinutes();

var nHoraAux, nMinAux;
if(nMinutosActual - nMinutos < 0){
nMinAux = (nMinutosActual - nMinutos) + 60;
           nHoraAux = (nHoraActual - nHora) - 1;
           nMinAux += nHoraAux*60;
}
else{
nMinAux = (nMinutosActual - nMinutos);
           nHoraAux = (nHoraActual - nHora);
           nMinAux += nHoraAux*60;
      }
   
   if(nMinAux >= 30)
       bActivar = true; // Pasaron 30 min? mandale mecha
   else
       bActivar = false;    

if(bActivar == true){
var tf2Bump = document.getElementsByClassName("trade_bump"); // Le añadimos el atributo
var atributoId = document.createAttribute("id"); // ID al boton
atributoId.nodeValue = "botonbump"; // para utilizar el metodo click
tf2Bump[0].attributes.setNamedItem(atributoId); // en el mismo.

var idBoton = document.getElementById("botonbump");
idBoton.click();
   
    bActivar = false;
       location.reload(true);
SetInterval("hacerBump();", Math.floor((Math.random() * nMiliMax) + nMiliMin));
   }
   else{
       SetInterval(function(){ location.reload(true); }, Math.floor((Math.random() * intervaloMax) + intervaloMin));
   }
}

hacerBump();


Recurro a ustedes, genios de la informática y la programación porque esto me esta desmotivando, no puedo creer que una simple linea me vuelva loco!!
Título: Re: SetInterval no esta declarado.
Publicado por: engel lex en 18 Marzo 2014, 05:06 AM
XD no está declarado porque no es
Código (javascript) [Seleccionar]
SetInterval(...)
es
Código (javascript) [Seleccionar]
setInterval(...)

los nombres de las funciones inician en minusculas, y en JScript para separar las otras palabras luego de la primera van capitalizadas

Código (javascript) [Seleccionar]
indexOf, parseInt, getElementsByClassName, setNamedItem...

creo que ya tienes la idea! XD
Título: Re: SetInterval no esta declarado.
Publicado por: bemone en 18 Marzo 2014, 05:10 AM
Cita de: engelx en 18 Marzo 2014, 05:06 AM
XD no está declarado porque no es
Código (javascript) [Seleccionar]
SetInterval(...)
es
Código (javascript) [Seleccionar]
setInterval(...)

los nombres de las funciones inician en minusculas, y en JScript para separar las otras palabras luego de la primera van capitalizadas

Código (javascript) [Seleccionar]
indexOf, parseInt, getElementsByClassName, setNamedItem...

creo que ya tienes la idea! XD

Creo que tengo lag mental a esta hora de la noche.
Lo cambie y funciono  :o pero como es posible que el SetInterval de arriba me funcione y el de abajo no? Gracias por la rapidez de la respuesta. Actualmente uno esta puesto con mayuscula y el otro no  :huh: :huh: :huh:
Título: Re: SetInterval no esta declarado.
Publicado por: engel lex en 18 Marzo 2014, 05:24 AM
si, los nombres de las funciones y variables en muchos lenguajes (por no decir todos) son sensibles a mayúsculas, así que por ejemplo podrías hacer

Código (javascript) [Seleccionar]

function aa(Aa, AA){
   for(var aA=0; aA<Aa; aA++){
      alert (AA);
   }
}

var AA=2;
var aA= "Aa?"
aa(AA, aA);


y correría perfectamente XD (lo iba a hacer con 3 a, pero puede producirle un acv a quien lo vea XD)