js-Uhr mit settimeout()

luigied

Mitglied
Hi @all,

ich wollte mir mal eine kleine javscript-uhr, die sich jede Sekunde aktualisiert programmieren.

Dazu habe ich folgenden Code geschrieben:

HTML:
<html>
   <head>
      <!---<meta http-equiv="refresh" content="1">--->
      <title>Uhr</title>
      <script type="text/javascript">
         function timep(){
            var time = new Date();
            var timestr = "" + time.getHours() + ':' + time.getMinutes() + ':' + time.getSeconds();
            document.getElementByID("display").value = time.getHours() + ':' + time.getMinutes() + ':' + time.getSeconds();
            recall();
         }
         function recall(){
            window.settimeout("timep()", 1000);
         }
      </script>
   </head>
   <body>
      <script type="text/javascript">
         timep();
      </script>
      <input type="text" id="display" value="">
   </body>
</html>

Beim Aufruf der Seite soll die Funktion timep() ausgeführt werden, die die aktuelle Zeit in das Textfeld schreibt. Danach soll die Funktion timep() per setTimeout() zur Wiederholung ... äh ... vorbereitet werden.

Leider wird nur das Textfeld angezeigt. Ohne Inhalt. Auch der IE zeigt in der linken unteren Ecke das (!) nicht mehr an. Also schliesse ich Syntaxfehler aus.

Weiß leider nicht mehr weiter hier. Könnt ihr mir vlt. helfen?

Danke im Vorraus.

Mfg Luigi
 
Moin Luigi,

JS ist recht anspruchsvoll, was das Ansprechen von Methoden betrifft.

Korrekt lauten die 2 bei dir Fehlerhaften:

getElementById
setTimeout


Wenn du dann noch den Aufruf der Funktion im Quelltext hinter dem Input platzierst, sollte alles bestens funktionieren :)

Kleiner Hinweis noch: es gibt noch eine Methode setInterval() , welche dir die Function recall() ersparen würde.
 
Wow. Ich wusste gar nicht, dass JS case-sensitiv ist. Obwohl Java ist es ja auch. :rolleyes:

Naja. Als "alter" Delphi-Programmierer darf man das mal vergessen ;)

Danke dir erstmal. Werd es gleich ausprobieren.

Mfg Luigi
 
Ok. Habs sie jetzt fertig.

Ich weiss. Das war jetzt kein Kunststück, aber ich bin ja auch erst Anfänger :)

Hier der Code:
HTML:
<!--- ---------------------------------------------------------------------------- --->
<!--- "THE BEER-WARE LICENSE" (Revision 42):                                       --->
<!--- <luigied@web.de> wrote this file. As long as you retain this notice you      --->
<!--- can do whatever you want with this stuff. If we meet some day, and you think --->
<!--- this stuff is worth it, you can buy me a beer in return. luigied             --->
<!--- ---------------------------------------------------------------------------- --->

<html>
   <head>
      <!---<meta http-equiv="refresh" content="1">--->
      <title>Uhr</title>
      <script type="text/javascript" language="Javascript">
	 function timep(){
            var time = new Date();
	    if (time.getHours() < 10)
               var hour = '0' + time.getHours();
	    else
	       var hour = time.getHours();
            if (time.getMinutes() < 10)
               var minute = '0' + time.getMinutes();
	    else
	       var minute = time.getMinutes();
            if (time.getSeconds() < 10)
               var second = '0' + time.getSeconds();
	    else
	       var second = time.getSeconds();
            document.getElementById("display").value = hour + ':' + minute + ':' + second;
         }
      </script>
   </head>
   <body>
      Zeit:
      <form>
        <input type="text" id="display" value="" READONLY>
      </form>
      <script type="text/javascript" language="Javascript">
         var activ = window.setInterval("timep()", 1000);
      </script>
   </body>
</html>

Mfg Luigi

PS: Gutes Forum.^^
 
Zuletzt bearbeitet:
Mit irgendetwas muss man ja anfangen, und ich glaube, Uhren sind etwas, womit sehr Viele ihre ersten JS-Gehversuche starten (bei mir war es zumindest so ) :)

Kleiner HTML-Tipp: vermeide möglichst, innerhalb von HTML-Kommentaren doppelte Bindestriche zu verwenden...diese sind dort nicht unproblematisch ;)
 
Hi,

da muss ich Sven beipflichten - meine ersten JS-Gehversuche machte ich mit einer Stoppuhr, die die Verweildauer auf einer Seite anzeigte.

Ciao
Quaese
 

Neue Beiträge

Zurück