+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Mehrere Countdowns auf einer Seite

  1. #1
    TP-Newbie Tibike macht alles soweit korrekt
    Registriert seit
    Oct 2008
    Beiträge
    3

    Mehrere Countdowns auf einer Seite

    Hi!

    Kenne mich mit Javascript nicht aus und bräuchte etwas Hilfe. Habe mir ein Countdownscript besorgt und habe es auch erfolgreich eingebunden. Nun habe ich das Problem, dass ich dieses script mehrfach auf einer Seite aufrufen möchte, ich jedoch nicht weiß wie ich das machen kann. Denn wenn ich es mehrfach aufrufe funktioniert es ja nicht da, ich 2 mal die selbe Funktion aufrufe und ...

    So sieht das Script aus:

    Code:
    /*
    Author: Robert Hashemian
    http://www.hashemian.com/
    
    You can use this code in any manner so long as the author's
    name, Web address and this disclaimer is kept intact.
    ********************************************************
    Usage Sample:
    
    <script language="JavaScript">
    TargetDate = "12/31/2020 5:00 AM";
    BackColor = "palegreen";
    ForeColor = "navy";
    CountActive = true;
    CountStepper = -1;
    LeadingZero = true;
    DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
    FinishMessage = "It is finally here!";
    </script>
    <script language="JavaScript" src="http://scripts.hashemian.com/js/countdown.js"></script>
    */
    
    function calcage(secs, num1, num2) {
      s = ((Math.floor(secs/num1))%num2).toString();
      if (LeadingZero && s.length < 2)
        s = "0" + s;
      return "<b>" + s + "</b>";
    }
    
    function CountBack(secs) {
      if (secs < 0) {
        document.getElementById("cntdwn").innerHTML = FinishMessage;
        return;
      }
      DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
      DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
      DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
      DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
    
      document.getElementById("cntdwn").innerHTML = DisplayStr;
      if (CountActive)
        setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
    }
    
    function putspan(backcolor, forecolor) {
     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(BackColor, ForeColor);
    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);
    Kann mir vielleicht jemand helfen?

    MfG Tibike

  2. #2
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    Moin,
    vermutlich musst du noch die ID der HTML Tags anpassen. Also einfach einen Parameter mehr uebergeben. Dieser Parameter bekommt die ID, in der der Counter steckt.


    [...]
    function CountBack(secs, id) {
    if (secs < 0) {
    document.getElementById(id).innerHTML = FinishMessage;
    [...]
    function putspan(backcolor, forecolor, id) {
    document.write("<span id='"+id+"' style='background-color:" + backcolor +
    "; color:" + forecolor + "'></span>");
    [...]
    Gruss Guin
    Mein Blog

  3. #3
    TP-Newbie Tibike macht alles soweit korrekt
    Registriert seit
    Oct 2008
    Beiträge
    3
    Hi!

    Erstmals danke für deine schnelle Hilfe!
    Habe das Script jetzt umgeschrieben und es sieht jetzt so aus:

    Habe die Änderungen ROT markiert!

    Code:
    function calcage(secs, num1, num2) {
      s = ((Math.floor(secs/num1))%num2).toString();
      if (LeadingZero && s.length < 2)
        s = "0" + s;
      return "<b>" + s + "</b>";
    }
    
    function CountBack(secs,id) {
      if (secs < 0) {
        document.getElementById(id).innerHTML = FinishMessage;
        return;
      }
      DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
      DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
      DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
      DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
    
      document.getElementById(id).innerHTML = DisplayStr;
      if (CountActive)
        setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
    }
    
    function putspan(backcolor, forecolor,id) {
     document.write("<span id='"+id+"' 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(BackColor, ForeColor,id);
    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,id);
    Jetzt funktionierts auch, nur leider aktualisiert sich die Zeit nicht selbstständig, nur dann wenn ich F5 oder den "Aktualisieren"-Browserbutton drücke. Weißt du vielleicht woran das liegt?

    Im Internet Explorer schreibt er den Fehler: 'document.getElementById(...)' ist Null oder kein Objekt

    Kann damit leider nichts anfangen.

    MfG Tibike
    Geändert von Tibike (11.05.2009 um 19:25 Uhr)

  4. #4
    TP-Veteran Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Guin ist ein richtiges Arbeitstier - DANKE Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.686
    HTML-Code:
    <html>
    <head>
    <title>Multiple Countdown Clocks</title>
    </head>
    <body>
    	<div id="clock1">[clock1]</div>
    	<div id="clock2">[clock2]</div>
    </body>
    <script language="JavaScript">
    
      StartCountDown("clock1","06/27/2010 12:33 PM -0400")
      StartCountDown("clock2","06/27/2010 2:00 PM -0400")
      
      /*
      	Author:		Robert Hashemian (http://www.hashemian.com/)
      	Modified by:	Munsifali Rashid (http://www.munit.co.uk/)
      	Modified by:	Tilesh Khatri
      */
      
      function StartCountDown(myDiv,myTargetDate)
      {
        var dthen	= new Date(myTargetDate);
        var dnow	= new Date();
        ddiff		= new Date(dthen-dnow);
        gsecs		= Math.floor(ddiff.valueOf()/1000);
        CountBack(myDiv,gsecs);
      }
      
      function Calcage(secs, num1, num2)
      {
        s = ((Math.floor(secs/num1))%num2).toString();
        if (s.length < 2) 
        {	
          s = "0" + s;
        }
        return (s);
      }
      
      function CountBack(myDiv, secs)
      {
        var DisplayStr;
        var DisplayFormat = "%%D%% Days %%H%%:%%M%%:%%S%%";
        DisplayStr = DisplayFormat.replace(/%%D%%/g,	Calcage(secs,86400,100000));
        DisplayStr = DisplayStr.replace(/%%H%%/g,		Calcage(secs,3600,24));
        DisplayStr = DisplayStr.replace(/%%M%%/g,		Calcage(secs,60,60));
        DisplayStr = DisplayStr.replace(/%%S%%/g,		Calcage(secs,1,60));
        if(secs > 0)
        {	
          document.getElementById(myDiv).innerHTML = DisplayStr;
          setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ");", 990);
        }
        else
        {
          document.getElementById(myDiv).innerHTML = "Auction Over";
        }
      }
    
    </script>
    </html>
    Er hat statt "id" "mydiv" als Variablenname genommen.
    Ansonsten gibt es auf der Autorenseite genug Hilfe:
    http://www.hashemian.com/tools/javascript-countdown.htm
    Gruss Guin
    Mein Blog

  5. #5
    TP-Newbie Tibike macht alles soweit korrekt
    Registriert seit
    Oct 2008
    Beiträge
    3

    Danke

    Danke, hab gestern den ganzen Tag gesucht, sogar auf der HP, wo ich das Script herhabe, aber war wahrscheinlich schon viel zu müde und habs übersehen.

    Danke nochmals, funzt jetzt einwandfrei.

    MfG

+ Antworten

Ähnliche Themen

  1. 2 Countdowns einfügen
    Von Mutated! im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 12.06.2006, 00:13
  2. mehrere forms auf einer seite
    Von se1811 im Forum Webdesign allgemein
    Antworten: 2
    Letzter Beitrag: 07.09.2004, 11:21
  3. Mehrere Ebenen zu einer..
    Von citybreaker im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 04.11.2003, 15:19
  4. Mehrere Sprachen auf einer Seite
    Von gina im Forum HTML & CSS
    Antworten: 2
    Letzter Beitrag: 30.09.2003, 00:43
  5. Mehrere Flash-Datein in einer Seite!!
    Von steambody im Forum Dreamweaver & andere Webeditoren
    Antworten: 0
    Letzter Beitrag: 20.03.2003, 20:04

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51