1.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hi,

mir fiel leider keine bessere Überschrift ein :D. Folgendes Problem:

Ich bin gerade dabei, mir ein bisschen JavaScript anzueignen und möchte die Uhrzeit dynamisch anzeigen lassen. Leider funktioniert das Script nicht. Ich erhalte als Fehlermeldung immer "clock is not defined".

Und hier der Quelltext:

<html>
<head>
<script type="text/javascript">
function clock() {
var t = new Date();
var h = t.getHours();
var m = t.getMinutes();
var s = t.getSeconds();

if(m <= 9)
m = "0" + m;

if(s <= 9)
s = "0" + s;

document.write("<label>"+h+":"+m+":"+s+"</label>");
setTimeout("clock()",1000);
}
</script>
</head>
<body>
<label>Uhrzeit: <script type='text/javascript'>clock();</script></label>
</body>
</html>

Habe mal folgendes Script überprüft: http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout

das funktioniert aus mir unerfindlichen Gründen. Was mache ich denn falsch?

4 Antworten

0 Punkte
Beantwortet von
dein script funktioniert bei mir mit firefox einwandfrei , uhrzeit wird angezeigt.

es updated sich zwar nicht, aber da liegt sicher an meinen restriktiven javascript einstellungen

fehlermeldung kommt keine
0 Punkte
Beantwortet von
Also bei mir updated der auch nix. Und JavaScript ist komplett aktiviert. Übrigens habe ich das sowohl in Firefox als auch im Internet Explorer getestet.
0 Punkte
Beantwortet von
Wenn du nach dem vollständigen Laden der Seite mit write() arbeitest, wird automatisch die komplette Seite gelöscht. Dadurch kennt dein Script sogar "sich selbst" nicht mehr.

Alternativen: zB über innerHTML den Inhalt ändern statt überschreiben

<html>
<head>
<script type="text/javascript">
function clock() {
var t = new Date;
var h = t.getHours();
var m = t.getMinutes();
var s = t.getSeconds();

if(m <= 9)
m = "0" + m;

if(s <= 9)
s = "0" + s;

document.getElementById("uhr").innerHTML="Uhrzeit "+h+":"+m+":"+s;
setTimeout(clock,1000);
}
window.onload=clock;
</script>
</head>
<body>
<label id="uhr">Uhrzeit:</label>
</body>
</html>
0 Punkte
Beantwortet von
Hey super, hat geklappt. Vielen Dank ;)
...