Hallo,
ich möchte gerne per Skript die Uhrzeit nutzen um mit den Werten jede Minute einen neuen Seitenaufruf zu machen. Aber ein Code sagt hoffentlich mehr als 1000 Worte:
<html>
<html>
<head>
<title>test test</title>
</head>
<body>
<iframe src="" id="isv" height="800" width="100%" frameborder="0"></iframe>
<script>
//das erste mal erstmal initialisieren
var d = new Date();
var hour = d.getHours();
var minute = d.getMinutes();
var url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";
document.getElementById("isv").src=url;
clock(minute);
//dann der eigentliche code, der von alleine weiter machen soll... jede Sekunde abfragen ob schon wieder eine Minute vergangen, falls ja bitte update...
function clock(minute) {
var f = new Date();
if (minute == f.getMinutes()) {
window.setTimeout('clock(minute)',1000);
} else {
var hour = f.getHours();
var minute = f.getMinutes();
url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";
document.getElementById("isv").src=url;
clock(minute);
}
}
</script>
</body>
</html>
Alles anzeigen
Das Problem ist, dass beim Wechsel der Minute die Seite anfängt plötzlich sekündlich zu laden. Aber wie kann das sein? Das Laden befindet sich doch im ELSE-Teil?
Wenn ich das letzte clock(minute) weglasse passiert es nicht. Aber es aktualisiert sich dann auch nicht mehr jede Minute. Habe es auch schon mit einer Endlosschleife probiert statt über einen Funktionsaufruf, aber dann geht GAR nichts mehr
Ich will doch einfach nur, dass einmal in der Minute die Zeit und somit die URL im Else-Teil aktualisiert wird
alternativ:
<script>
var d = new Date();
var hour = d.getHours();
var minute = d.getMinutes();
var url = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";
document.getElementById("isv").src=url;
function empty(){}
//warte bis die aktuelle angebrochene minute voll ist, dann aktualisieren, und dann von da ab alle 60 sekunden aktualisieren
setTimeout('empty()',(60-d.getSeconds())*1000);
updateURL();
setInterval(updateURL,60*1000);
function updateURL(){
var f = new Date();
var hour = f.getHours();
var minute = f.getMinutes();
var uri = "http://www.bla.com/" + hour.toString() +"text " + minute.toString() +"text";;
document.getElementById("isv").src=uri;
}
Alles anzeigen
Aber das geht nicht snychron... gibt zwar jede Minute ein update, aber eben nicht die "echte" Zeit. Welche Zeit wird da überhaupt genommen eigentlich? Die eigene Zeit aufm PC?
Das zweite Problem was ich habe, ist die height beim iFrame richtig zu bestimmen. Habe auch schon versucht, dass über screen.height zu umgehen, aber klappt auch nicht.
Wie mach ich das alles nun am geschicktesten?