Refrech der Seite nach Countdown

isaack

Mitglied
Hallo zusammen,

ich habe im Internet eine Countdown gefunden. Der sehr gut funktioniert. jetzt stellt sich mir die frage, wie kann ich es anstellen das nach ablauf des Countdowns die seite neu geladen wird?
Wichtig ist, das die Seite dann nur einmal neu geladen wird und nicht immer wieder neu.
Hier einmal der Code dazu:

Code:
  var countdownfunc = function(elem, ende, endstring)
  {
  //Wenn nichts als countdownende angegeben wurde dann wird das hier festgelegt
  if(typeof endstring == 'undefined')
  {
  endstring = 'Seitenreload';
  }
  //Der ausgabestring wird festgelegt
  var output = endstring;
  //Differenz zwischen jetzt und dem ende
  //division durch 1000 weil in JavaScript ein timestamp in Millisekunden angegeben wird
  var timeDiff = (parseInt(ende)) - (parseInt(new Date().getTime() / 1000));
  //Wenn mehr als 0 Sekunden übrig ist dann ...
  if(timeDiff > 0)
  {
  //... setz den ausgabe string zurück
  output = '';
  //Wenn mehr als 1 Stunde (60 sek * 60 Min) übrig ist...
  if(timeDiff > 3600)
  {
  //errechne wie viele stunden übrig sind
  output += parseInt(timeDiff/3600) + 'h ';
  timeDiff = timeDiff%3600; //Modulo, teile durch eine stunde und speichere den rest
  }
  //Wenn mehr als 1 Minute (60 Sek) übrig ist ...
  if(timeDiff > 60)
  {
  //... errechne wieviele minuten es sind ...
  output += parseInt(timeDiff/60) + 'm ';
  timeDiff = timeDiff%60;//... und merk dir den rest
  }
  //jetzt sind nur noch die sekunden übrig
  output += timeDiff + 's';
  //rufe diese funktion nach 1000 millisekunden (1 Sek) wieder auf
  setTimeout(function() {countdownfunc(elem, ende, endstring);},1000);
  }
  //Schreib den ausgabestring in das mitgelieferte element
  elem.innerHTML = output;
  };
CODE
 
Zuletzt bearbeitet:
Müsste so gehen:
Code:
var countdownfunc = function(elem, ende, endstring) {
      //Wenn nichts als countdownende angegeben wurde dann wird das hier festgelegt
      if (typeof endstring == 'undefined') {
          endstring = 'Seitenreload';
      }
      //Der ausgabestring wird festgelegt
      var output = endstring;
      //Differenz zwischen jetzt und dem ende
      //division durch 1000 weil in JavaScript ein timestamp in Millisekunden angegeben wird
      var timeDiff = (parseInt(ende)) - (parseInt(new Date().getTime() / 1000));
      //Wenn mehr als 0 Sekunden übrig ist dann ...
      if (timeDiff > 0) {
          //... setz den ausgabe string zurück
          output = '';
          //Wenn mehr als 1 Stunde (60 sek * 60 Min) übrig ist...
          if (timeDiff > 3600) {
              //errechne wie viele stunden übrig sind
              output += parseInt(timeDiff / 3600) + 'h ';
              timeDiff = timeDiff % 3600; //Modulo, teile durch eine stunde und speichere den rest
          }
          //Wenn mehr als 1 Minute (60 Sek) übrig ist ...
          if (timeDiff > 60) {
              //... errechne wieviele minuten es sind ...
              output += parseInt(timeDiff / 60) + 'm ';
              timeDiff = timeDiff % 60; //... und merk dir den rest
          }
          //jetzt sind nur noch die sekunden übrig
          output += timeDiff + 's';
          //rufe diese funktion nach 1000 millisekunden (1 Sek) wieder auf
          setTimeout(function() {
              countdownfunc(elem, ende, endstring);
          }, 1000);
      } else { 
          document.location.reload(true);
      }
      //Schreib den ausgabestring in das mitgelieferte element
      elem.innerHTML = output;
  };
Wenn die Seite neu geladen wird, beginnt der Countdown jedoch von neuem. Um das zu vermeiden, müsste man eine Statuskennung im Sessionstorage verwenden.
 

Neue Beiträge

Zurück