Countdown timer

Discussion in 'JavaScript' started by Delgado2009, Mar 28, 2011.

  1. #1
    Hello everyone, I have this script and i don't know why doesn't work. I want to display a timer on page a index.html, after 15 sec, the page is reloaded and appears other content...how can I do that?
    <script type="text/javascript">
    var cnt = 15;
    function countdown() {
    if (cnt == -1) {
    window.location.href = "index.html";
    } else {
    /*
    min = Math.floor(cnt / 60);
    sec = cnt - (min * 60);
    if (sec < 10) { sec = "0" + sec; }
    if (min < 10) { min = "0" + min; }
    document.getElementById('timercountdown').innerHTML = min + ":" + sec;
    */
    if (cnt <= 1) {
    measurement = "second";
    } else {
    measurement = "seconds";
    }

    document.getElementById('timercountdown').innerHTML = cnt + " " + measurement;
    cnt--;
    _timer = setTimeout("countdown()", 1000);
    }
    }
    var _timer = setTimeout("countdown()", 1000); // start ticking process
    </script>
    Please wait for another <span id="timercountdown"></span> while the page is loading...
    Click "here" if you want to start immediately.
     
    Last edited: Mar 28, 2011
    Delgado2009, Mar 28, 2011 IP
  2. Jan Novak

    Jan Novak Peon

    Messages:
    121
    Likes Received:
    5
    Best Answers:
    1
    Trophy Points:
    0
    #2
    
    <script type="text/javascript">
    var cnt = 14;
    function countdown() {
     
        if (cnt <= 1) {
          measurement = "second";
        } else {
          measurement = "seconds";
        }
        if(cnt==-1){
          window.location.href='http://google.com';
          
          //document.getElementById('hidden').style.display="block";
          //document.getElementById('timer').style.display="none";
          
        }else{
          document.getElementById('timercountdown').innerHTML = cnt + " " + measurement;
          cnt--;
          _timer = setTimeout("countdown()", 1000);
        }
    }
    
    var _timer = setTimeout("countdown()", 1000); // start ticking process
    </script>
    Please wait for another <span id="timercountdown">15 seconds</span> while the page is loading...
    Click "here" if you want to start immediately.
    
    
    Code (markup):
     
    Jan Novak, Mar 28, 2011 IP
  3. camjohnson95

    camjohnson95 Active Member

    Messages:
    737
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    60
    #3
    how does it not work? you do need to define 'measurement', under var cnt, have var measurement;
     
    camjohnson95, Mar 29, 2011 IP
  4. Delgado2009

    Delgado2009 Member

    Messages:
    94
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    41
    #4
    You do not understand me, I want to appear this countdown timer on a page "index.html" and after the counter reaches 0,the page is reloaded ,the counter disappears and other content appears on the same page (index.html)...


    The script that I posted above, it's something like when the counter reaches 0, the page is reloaded but it appears again, and I want to appears something else.
     
    Delgado2009, Mar 29, 2011 IP
  5. Jan Novak

    Jan Novak Peon

    Messages:
    121
    Likes Received:
    5
    Best Answers:
    1
    Trophy Points:
    0
    #5
    Do redirect to another page instead of reload the same page.

    Or pass a parameter in JS to URL and read it (best on server side) and return the same page without counter functionality.
     
    Jan Novak, Mar 29, 2011 IP
  6. Delgado2009

    Delgado2009 Member

    Messages:
    94
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    41
    #6
    I do not know javascript very well, can you give me a concrete example?
     
    Delgado2009, Mar 29, 2011 IP
  7. camjohnson95

    camjohnson95 Active Member

    Messages:
    737
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    60
    #7
    index.html:
    
    <script type="text/javascript">
    var cnt = 15;
    function countdown() {
    if (cnt == -1) {
    window.location.href = "index2.html";
    } else {
    /*
    min = Math.floor(cnt / 60);
    sec = cnt - (min * 60);
    if (sec < 10) { sec = "0" + sec; }
    if (min < 10) { min = "0" + min; }
    document.getElementById('timercountdown').innerHTML = min + ":" + sec;
    */
    if (cnt <= 1) {
    measurement = "second";
    } else {
    measurement = "seconds";
    }
    
    document.getElementById('timercountdown').innerHTML = cnt + " " + measurement;
    cnt--;
    _timer = setTimeout("countdown()", 1000);
    }
    }
    var _timer = setTimeout("countdown()", 1000); // start ticking process
    </script>
    
    Code (markup):
    index2.html
    
    Your page here
    
    Code (markup):
     
    camjohnson95, Mar 29, 2011 IP