2 COUNTER GLEICHZEITIG laufen lassen ?!
BxBender
- javascript
Hallo.
Ich habe da ein kleines Problem mit meinem Foren-Board.
Ich habe dort bisher immer eine Digital-Uhr laufen lassen, die dann immer die aktuelle Uhrzeit anzeigt.
Das wird durch folgendes Gewurschtel dargestellt:
<script language="JavaScript">
<!--
function init() {
var iii;
for(iii=1; iii<10; iii++) {
img=new Image();
img.src="rc_"+iii+".gif";
}
setTimeout("clock()", "1000");
}
function clock() {
var iii;
var date=new Date();
var hhh=date.getHours();
iii=Math.floor(hhh/10);
document.h1.src="../../grafik/dg"+iii+".gif"
iii=hhh%10;
document.h2.src="../../grafik/dg"+iii+".gif"
var mmm=date.getMinutes();
iii=Math.floor(mmm/10);
document.m1.src="../../grafik/dg"+iii+".gif"
iii=mmm%10;
document.m2.src="../grafik/dg"+iii+".gif"
var sss=date.getSeconds();
iii=Math.floor(sss/10);
document.s1.src="../../grafik/dg"+iii+".gif"
iii=sss%10;
document.s2.src="../../grafik/dg"+iii+".gif"
setTimeout("clock()", "1000");
}
//-->
</script>
<body onLoad="init()">
<right>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<h4><b><font face="Comic Sans MS"> </font></b><img src="../../grafik/dg0.gif" name="h1"><img src="../../grafik/dg0.gif" name="h2"><img src="../../grafik/dgc.gif" ><img src="../../grafik/dg0.gif"
name="m1"><img src="../../grafik/dg0.gif" name="m2"><img src="../../grafik/dgc.gif"><img src="../../grafik/dg0.gif" name="s1"><img src="../../grafik/dg0.gif" name="s2"> </h4>
</td>
</tr>
</table>
Nun wollte ich gerne noch einen Zähler einfügen, der die Uhrzeit rückwärts laufen läßt, also einem bestimmten Ereignis oder Datum entgegen. Das sieht folgendermaßen aus:
<!-- STOPPELMARKT-COUNTER START -->
<script language="JavaScript">
self.name = "stoppelcount";
var url_regexpr= /(\w+)://([^/]+)/(\S*)/;
</script>
<script language="JavaScript">
var DT_msPerDay, DT_msPerHour, DT_msPerMinute, DT_msPerSecond;
var DT_TimerOn, DT_TimerId;
function DT_showCount(dateBegin, dateEnd, boxB)
{
var timeDiff=dateEnd.getTime()-dateBegin.getTime();
if (timeDiff<=0)
{
boxB.value="... Stoppelmarkt ist angefangen!"; return(false);
}
else{
var dd=Math.floor(timeDiff/DT_msPerDay);
timeDiff=timeDiff-dd*DT_msPerDay;
var hh=Math.floor(timeDiff/DT_msPerHour);
timeDiff=timeDiff-hh*DT_msPerHour;
var mm=Math.floor(timeDiff/DT_msPerMinute);
timeDiff=timeDiff-mm*DT_msPerMinute;
var ss=Math.floor(timeDiff/DT_msPerSecond);
hh=(hh>=10?hh:"0"+hh);
mm=(mm>=10?mm:"0"+mm);
ss=(ss>=10?ss:"0"+ss);
if (dd <= 1) boxB.value=dd+" Tag "+hh+" Stunde(n) "+mm+" Minute(n) "+ss+" Sekunde(n)";
else boxB.value=dd+" Tage, "+hh+" Stunde(n) "+mm+" Minute(n) "+ss+" Sekunde(n)";
if (dd == 0) boxB.value=dd+" Tage, "+hh+" Stunde(n) "+mm+" Minute(n) "+ss+" Sekunde(n)";
return(true);
}
}
function DT_showDate(dateD, boxB)
{
var y=dateD.getYear();
var m=dateD.getMonth()+1;
var d=dateD.getDate();
var hh=dateD.getHours();
var mm=dateD.getMinutes();
var ss=dateD.getSeconds();
m=(m>=10?m:"0"+m);
d=(d>=10?d:"0"+d);
hh=(hh>=10?hh:"0"+hh);
mm=(mm>=10?mm:"0"+mm);
ss=(ss>=10?ss:"0"+ss);
boxB.value=d+"."+m+"."+y+" "+hh+" Stunde(n) "+mm+" Minute(n) "+ss+" Sekunde(n)";
}
function DT_stopTimer()
{
if (DT_TimerOn)
{
clearTimeout(DT_TimerId);
DT_TimerOn=false;
}
}
function DT_startTimer()
{
var dateNow=new Date();
var dateEOT=new Date(countdown_datum);
var On=DT_showCount(dateNow, dateEOT, document.Ausgabe.Rest);
if (On)
{
DT_TimerId=setTimeout("DT_startTimer()", 1000);
DT_TimerOn=true;
}
else DT_stopTimer();
}
function DT_initTimer()
{
DT_msPerDay=24*60*60*1000;
DT_msPerHour=60*60*1000;
DT_msPerMinute=60*1000;
DT_msPerSecond=1000;
DT_TimerOn=false;
DT_TimerId=null;
DT_stopTimer();
DT_startTimer();
}
function countdown()
{DT_initTimer();}
var countdown_datum='August 14, 2003 18:00:00';
</script>
<BODY TEXT="#000000" LINK="#0000ff" VLINK="#800080" bgcolor="#000000" scroll=yes left-margin=0 top-margin=0 right-margin=0 bottom-margin=0 onload="countdown()">
<form name="Ausgabe">
<p align=center><font size="3" color="#FFFFFF"><b>Noch</b>
<input size="51" name="Rest" value="berechnen der Restzeit, bitte warten..." style="text-align: center">
<b>bis STOPPELMARKT 2003</form>
<!-- STOPPELMARKT-COUNTER ENDE -->
Kann man das irgendwie hinbekommen, dass beide Counter gleichzeitig laufen? Bei mir funktioniert komischerweise immer nur der erste Counter, egal welche Reihenfolge ich festlege. Kann der Rechner nur ein Zählwerk verwalten, oder woran liegt das?
Bei diesem Board wird jedenfalls eine Seite main.php geladen, in der dann die Seiten header.htm (mit den Countern), main.htm und footer.htm rein geladen werden. Auch wenn ich die Counter auf unterschiedliche Dateien aufteile, geht immer nur der allererste von denen. Der andere Counter rührt sich nicht.
Ich habe auch schon versucht, bei der normalen Uhrzeit-Anzeige die var-Werte zu ändern (z.B. ii zu iii und mm zu mmm), doch ohne Erfolg.
Bitte helft mir!
Danke.
Gruß
BxBender
Hi,
Was soll der Mist? Willst Du jetzt alle paar Minuten Dein Posting wiederholen?
Und was soll das Geschrei im Titel?
cu,
Andreas
Hi,
Was soll der Mist? Willst Du jetzt alle paar Minuten Dein Posting wiederholen?
Und was soll das Geschrei im Titel?cu,
Andreas
Oh, sorry.
Mir war der Mist irgendwie beim Hochladen abgeschmiert
und weil ich zum Glück vorher noch ne Sicherung in die Zwischenablage getan habe, spielte ich es gleich nochmal hoch.
Hallo,
Ich habe dort bisher immer eine Digital-Uhr laufen lassen, die dann immer die aktuelle Uhrzeit anzeigt.
Hmm, ich habe in meiner Taskleiste links unten so ein formschönes Quadrat mit der Uhrzeit .... aber egal.
... [hier folgt jetzt jede Menge javascript Gewurschtel] ...
Unter anderem:
function init() {
<body onLoad="init()">
»»
»»
function countdown()
<BODY onload="countdown()">Kann man das irgendwie hinbekommen, dass beide Counter gleichzeitig laufen?
Wenn du es hinbekommst, dass dein Browser beide <body> gleichzeitig darstellt.
HTH
Maxx
Hallo,
Ich habe dort bisher immer eine Digital-Uhr laufen lassen, die dann immer die aktuelle Uhrzeit anzeigt.
Hmm, ich habe in meiner Taskleiste links unten so ein formschönes Quadrat mit der Uhrzeit .... aber egal.
... [hier folgt jetzt jede Menge javascript Gewurschtel] ...
Unter anderem:
function init() {
<body onLoad="init()">
»»
»»
function countdown()
<BODY onload="countdown()">Kann man das irgendwie hinbekommen, dass beide Counter gleichzeitig laufen?
Wenn du es hinbekommst, dass dein Browser beide <body> gleichzeitig darstellt.
HTH
Maxx
Hallo nochmal.
Wie ist das zu verstehen? Soll ich ein body weglöschen? Das scheint aber nicht zu funzen.
Guten Morgen,
Wie ist das zu verstehen? Soll ich ein body weglöschen? Das scheint aber nicht zu funzen.
Wieso packst du nicht beide Funktionen in eine und rufst diese eine Funktion beim Laden auf?
Viele Grüße
Torsten
Guten Morgen,
Wie ist das zu verstehen? Soll ich ein body weglöschen? Das scheint aber nicht zu funzen.
Wieso packst du nicht beide Funktionen in eine und rufst diese eine Funktion beim Laden auf?
Viele Grüße
Torsten
Ähhh, ja, kann das ja mal probieren.
Hab zwar keine Ahnung davon, aber ich werds ja herausfinden, obs klappt....
Hallo BxBender (</faq/#Q-05a>)
Wie ist das zu verstehen? Soll ich ein body weglöschen? Das scheint aber nicht zu funzen.
Wieso packst du nicht beide Funktionen in eine und rufst diese eine Funktion beim Laden auf?
Ähhh, ja, kann das ja mal probieren.
Hab zwar keine Ahnung davon, aber ich werds ja herausfinden, obs klappt....
Es geht sogar noch einfacher. Du kannst theorethisch beliebigen JavaScript-Code als Wert für das onload-Attribut nehmen. In deinem Fall würde das dann so aussehen:
<body onload="init(); countdown();">
Siechfreds Version würde ich nur nehmen, wenn es komplexere oder viele Anweisungen sind, die gleichzeitig ausgeführt werden sollen.
Schöne Grüße
Johannes (</faq/#Q-05c>)