Frank Bergermann: Reload-Button / Aufenthaltsdauer

Beitrag lesen

Ich fände es nützlich, unter "Ladezeitpunkt" direkt einen Aktualisierungs-Knopf zu setzen (Code siehe unten). Auch die Anzeige der Aufenthaltsdauer wäre nicht übel (Code mit Reload-Button kombiniert siehe unten).

Ich fürchte aber, daß bei Klick auf "Zurück" der Timer wieder bei 0 anfängt. (Abhilfe: Cookie, bei neu laden aktualisieren).

Trotzdem wäre zumindest der Aktualisieren-Button ein deutlicher Hinweis, daß man nach "Zurück" auch noch auf "Aktualisieren" klicken muß, um seinen oder andere neue Beiträge angezeigt zu bekommen.

Zum Testen folgenden Code in eine leere *.htm-Datei einfügen.
Später im Forum hinter die Zeile mit dem Ladezeitpunkt einfügen.
(daher habe ich <html> usw. weggelassen, funktioniert in der leeren Datei aber auch ohne).

<!--
Statt
  action=javascript:location.reload()
ist ein fester Link
 action=http://forum.de.selfhtml.org
sicherer, geht dann auch ohne JavaScript
-->

Aktualisierungs-Knopf, Stand-Alone-Version:<BR>
<Form action=javascript:location.reload()>
  <Input type=submit value="Forum aktualisieren" style=background-color:#00FF00>
</Form>

Aktualisierungs-Knopf, mit Aufenthaltsdauer:<BR>
<Form name="Aufenthaltsdauer" action=javascript:location.reload()>
  <b>Aufenthaltsdauer:</b>
  <!-- size für Netscape nicht unterschreiten! -->
  <Input size=8 name="Stundendauer" readonly>
  <Input type=submit value="Forum aktualisieren" style=background-color:#00FF00>
</Form>

<script language="JavaScript">
<!--
 // Wenn im Head oder vor dem Formular: <body onLoad="ZeitAnzeigen()">
 // Wenn Script NACH dem Formular:
 ZeitAnzeigen() // nur wenn Script NACH dem Formular

// Global:
 var Start = ( new Date() ).getTime()
function ZeitAnzeigen(){
 var Jetzt = ( new Date() ).getTime()
 var form = document.Aufenthaltsdauer
 if(Start) // Wenn Script NACH Formular erscheint ist Start noch NaN bis Seite geladen
  form.Stundendauer.value = ZeitString (Jetzt - Start, 1)
 window.setTimeout('ZeitAnzeigen()',1000)
}
function ZeitString(Zeit, modus){
 // modus: 0=mm:ss, 1=hh:mm:ss, 2=auto(m:ss oder h:mm:ss), 3=auto(mm:ss oder hh:mm:ss)
 // (C) Frank Bergermann, http://www.bitwelt.de http://www.FrankBergermann.de
 var gesamtSekunden = Math.floor(Zeit / 1000)
 var Sekunden = gesamtSekunden % 60
 var gesamtMinuten = (gesamtSekunden - Sekunden) / 60
 var Minuten = modus > 0 ? gesamtMinuten % 60 : gesamtMinuten
 var Stunden = (gesamtMinuten - Minuten) / 60
 var Sekunden2 = (Sekunden > 9 ? "" : "0") + Sekunden
 var Minuten2 = (Minuten > 9 ? "" : "0") + Minuten
 var Stunden2 = (Stunden > 9 ? "" : "0") + Stunden
 switch(modus){
 case 0,1:
  // 0=mm:ss, 1=hh:mm:ss
  return (modus > 0 ? Stunden2 + ":" : "") + Minuten2 + ":" + Sekunden2
 case 2:
  // auto(m:ss oder h:mm:ss)
  return (Stunden > 0 ? Stunden + ":" + Minuten2 : Minuten) + ":" + Sekunden2
 default:
  // auto(mm:ss oder hh:mm:ss)
  return (Stunden > 0 ? Stunden2 + ":" : "") + Minuten2 + ":" + Sekunden2
 }
}
//-->
</script>