Foro de elhacker.net

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
  1. SetInterval(function(){ location.reload(true); }, Math.floor((Math.random() * intervaloMax) + intervaloMin));
  2.  

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:

Citar
ReferenceError: SetInterval is not defined

Código
  1. var intervaloMin = 60000;
  2. var intervaloMax = 120000;
  3. var nMiliMin = 1800000;
  4. var nMiliMax = 2100000;
  5.  
  6. function arreglarHora(hora, valor) {
  7. return hora+valor-3;
  8. }
  9.  
  10. function refrescar(){
  11. location.reload(true);
  12. }
  13.  
  14. function hacerBump() {
  15.  
  16.        var nHora;
  17. var nMinutos;
  18. var nHoraActual;
  19. var nMinutosActual;
  20. var bActivar = true;
  21.  
  22. // Tomamos la hora del ultimo bump
  23. var tf2UltimoBump = document.getElementsByTagName("time");
  24. var aux = tf2UltimoBump[0].attributes[1].value;
  25. var tiempo = aux.substr(15);
  26. // --------------------------------
  27.  
  28. nHora = parseInt(tiempo, 10);
  29.  
  30. if(nHora <= 9)
  31. nMinutos = parseInt(tiempo[2]+tiempo[3], 10);
  32. else
  33. nMinutos = parseInt(tiempo[3]+tiempo[4], 10);
  34.  
  35.    if(nHora < 12)
  36. nHora = arreglarHora(nHora, 0);
  37.    else
  38.        nHora = arreglarHora(nHora, 12);
  39.  
  40. var date =  new Date();
  41. nHoraActual = date.getHours();
  42. nMinutosActual = date.getMinutes();
  43.  
  44. var nHoraAux, nMinAux;
  45. if(nMinutosActual - nMinutos < 0){
  46. nMinAux = (nMinutosActual - nMinutos) + 60;
  47.            nHoraAux = (nHoraActual - nHora) - 1;
  48.            nMinAux += nHoraAux*60;
  49. }
  50. else{
  51. nMinAux = (nMinutosActual - nMinutos);
  52.            nHoraAux = (nHoraActual - nHora);
  53.            nMinAux += nHoraAux*60;
  54.       }
  55.  
  56.    if(nMinAux >= 30)
  57.        bActivar = true; // Pasaron 30 min? mandale mecha
  58.    else
  59.        bActivar = false;    
  60.  
  61. if(bActivar == true){
  62. var tf2Bump = document.getElementsByClassName("trade_bump"); // Le añadimos el atributo
  63. var atributoId = document.createAttribute("id"); // ID al boton
  64. atributoId.nodeValue = "botonbump"; // para utilizar el metodo click
  65. tf2Bump[0].attributes.setNamedItem(atributoId); // en el mismo.
  66.  
  67. var idBoton = document.getElementById("botonbump");
  68. idBoton.click();
  69.  
  70.     bActivar = false;
  71.        location.reload(true);
  72. SetInterval("hacerBump();", Math.floor((Math.random() * nMiliMax) + nMiliMin));
  73.    }
  74.    else{
  75.        SetInterval(function(){ location.reload(true); }, Math.floor((Math.random() * intervaloMax) + intervaloMin));
  76.    }
  77. }
  78.  
  79. 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
  1. SetInterval(...)
es
Código
  1. 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
  1. 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
XD no está declarado porque no es
Código
  1. SetInterval(...)
es
Código
  1. 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
  1. 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
  1. function aa(Aa, AA){
  2.   for(var aA=0; aA<Aa; aA++){
  3.      alert (AA);
  4.   }
  5. }
  6.  
  7. var AA=2;
  8. var aA= "Aa?"
  9. aa(AA, aA);
  10.  

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