SitePoint Sponsor

User Tag List

Results 1 to 2 of 2

Hybrid View

  1. #1
    SitePoint Member
    Join Date
    Jun 2011
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Countdown Timer Refresh Question

    I was wondering how I can make the page refresh after the timer has reached 0 for X amount of seconds? Here is the code I am using:

    PHP Code:
    <script language="JavaScript">
    TargetDate "{$timerdate}";
    BackColor "#FFFFFF";
    ForeColor "#FF0000";
    CountActive true;
    CountStepper = -1;
    LeadingZero true;
    DisplayFormat "%%D%% Days %%H%% Hours %%M%% Minutes %%S%% Seconds";
    FinishMessage "<b>Price has been reduced!</b>";
    </script> 
    PHP Code:
    function calcage(secsnum1num2) {
      
    = ((Math.floor(secs/num1))%num2).toString();
      if (
    LeadingZero && s.length 2)
        
    "0" s;
      return 
    "<b>" "</b>";
    }

    function 
    CountBack(secs) {
      if (
    secs 0) {
        
    document.getElementById("cntdwn").innerHTML FinishMessage;
        return;
      }
      
    DisplayStr DisplayFormat.replace(/%%D%%/gcalcage(secs,86400,100000));
      
    DisplayStr DisplayStr.replace(/%%H%%/gcalcage(secs,3600,24));
      
    DisplayStr DisplayStr.replace(/%%M%%/gcalcage(secs,60,60));
      
    DisplayStr DisplayStr.replace(/%%S%%/gcalcage(secs,1,60));

      
    document.getElementById("cntdwn").innerHTML DisplayStr;
      if (
    CountActive)
        
    setTimeout("CountBack(" + (secs+CountStepper) + ")"SetTimeOutPeriod);
    }

    function 
    putspan(backcolorforecolor) {
     
    document.write("<span id='cntdwn' style='background-color:" backcolor 
                    
    "; color:" forecolor "'></span>");
    }

    if (
    typeof(BackColor)=="undefined")
      
    BackColor "white";
    if (
    typeof(ForeColor)=="undefined")
      
    ForeColor"black";
    if (
    typeof(TargetDate)=="undefined")
      
    TargetDate "12/31/2020 5:00 AM";
    if (
    typeof(DisplayFormat)=="undefined")
      
    DisplayFormat "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
    if (
    typeof(CountActive)=="undefined")
      
    CountActive true;
    if (
    typeof(FinishMessage)=="undefined")
      
    FinishMessage "";
    if (
    typeof(CountStepper)!="number")
      
    CountStepper = -1;
    if (
    typeof(LeadingZero)=="undefined")
      
    LeadingZero true;


    CountStepper Math.ceil(CountStepper);
    if (
    CountStepper == 0)
      
    CountActive false;
    var 
    SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 990;
    putspan(BackColorForeColor);
    var 
    dthen = new Date(TargetDate);
    var 
    dnow = new Date();
    if(
    CountStepper>0)
      
    ddiff = new Date(dnow-dthen);
    else
      
    ddiff = new Date(dthen-dnow);
    gsecs Math.floor(ddiff.valueOf()/1000);
    CountBack(gsecs); 

  2. #2
    SitePoint Evangelist
    Join Date
    Jun 2007
    Location
    North Yorkshire, UK
    Posts
    483
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I haven't check this out but within the function CountBack you have

    Code JavaScript:
    if (secs < 0) { 
        document.getElementById("cntdwn").innerHTML = FinishMessage; 
        return; 
    }

    If you add a timeout function before the return statement this will execute after X seconds (in the example 8) and the page will be reload.

    Code JavaScript:
    if (secs < 0) { 
        document.getElementById("cntdwn").innerHTML = FinishMessage; 
        setTimeOut('location.reload()', 8000)
        return; 
    }


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •