Automatisches Refresh und position halten einer HTML Seite
Hallo Forum,
ich habe ein kleines Problme mit JavaScript, vielleicht kann mir ja einer von euch helfen. Undzwar habe ich eine Tabelle die in html format und im Abstand von 2 min neu geschrieben wird.
jetzt würde ich gerne, das diese Html Datei sich selbst "refresht" und die position wo man gerade ist behält. Habe das ganze schon gemacht und das sieht so aus:
<HEAD>
<script type='text/javascript'>
var time = 5000;
function refresh()
{
top.frame_scroll_Xpos = new Array(window.scrollLeft);
top.frame_scroll_Ypos = new Array(window.scrollTop);
location.reload();
}
setTimeout("refresh()",time);
function get_position()
{
var scroll_Xpos = top.frame_scroll_Xpos;
var scroll_Ypos = top.frame_scroll_Ypos;
window.scrollTo(scroll_Xpos,scroll_Ypos);
}
</script>
</HEAD>
<BODY onload='get_position();' >
Wenn ich nun hingehe und per F5 aktualiesiere dann funkitoniert das ganze auch, aber wenn der nach 5 sek das macht, dann springt der immer nach ganz oben. Woran liegt es, wo ist mein Denkfehler?
Für Ideen und Ändeurngen bin ich dankbar!
Gruß Totty
ich habe ein kleines Problme mit JavaScript, vielleicht kann mir ja einer von euch helfen. Undzwar habe ich eine Tabelle die in html format und im Abstand von 2 min neu geschrieben wird.
jetzt würde ich gerne, das diese Html Datei sich selbst "refresht" und die position wo man gerade ist behält. Habe das ganze schon gemacht und das sieht so aus:
<HEAD>
<script type='text/javascript'>
var time = 5000;
function refresh()
{
top.frame_scroll_Xpos = new Array(window.scrollLeft);
top.frame_scroll_Ypos = new Array(window.scrollTop);
location.reload();
}
setTimeout("refresh()",time);
function get_position()
{
var scroll_Xpos = top.frame_scroll_Xpos;
var scroll_Ypos = top.frame_scroll_Ypos;
window.scrollTo(scroll_Xpos,scroll_Ypos);
}
</script>
</HEAD>
<BODY onload='get_position();' >
Wenn ich nun hingehe und per F5 aktualiesiere dann funkitoniert das ganze auch, aber wenn der nach 5 sek das macht, dann springt der immer nach ganz oben. Woran liegt es, wo ist mein Denkfehler?
Für Ideen und Ändeurngen bin ich dankbar!
Gruß Totty
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81752
Url: https://administrator.de/contentid/81752
Ausgedruckt am: 20.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
der Denkfehler liegt hier:Erst scrollt das Document an die angegebenen Position (wenn es so funktionier, keine Ahnung!)
Und danach erst wird das Dokument neu geladen, das neu geladen Dokument hat aber keine "erinerung" an die letzte Position im Browser, woher auch :wink: der reload wirkt warscheinlich wie ein ganz normaler Request.
Eine Möglichkeit wäre dem neuzuladenem Dokument mitzuteilen wo es "hin soll".
Ich bin mir nicht sicher ob es überhaubt mit JS so möglich ist, aber ich denke daran das du die "alten Positionsdaten" per GET an das "neue" Dokument übergiebstIm Dokument selber muss das dann wieder per JS ausgelesen und verarbeitet werden.
Mal so neben bei:
Ist es wirklich notwendig das die Seite alle 5 Sek neu geladen wird wenn die Daten nur alle 120 Sek neu generiert werden ?
Achso, F5 ist eine Funktion des Browsers, keine der Website ! Bei einem druck auf F5 merkt sich der Browser warscheinlich selber die gescrollte Position, läd das Dokument neu und scrollt wieder an die Position.
Gruß Arano
der Denkfehler liegt hier:
function refresh()
{
top.frame_scroll_Xpos = new Array(window.scrollLeft);
top.frame_scroll_Ypos = new Array(window.scrollTop);
location.reload();
}
Und danach erst wird das Dokument neu geladen, das neu geladen Dokument hat aber keine "erinerung" an die letzte Position im Browser, woher auch :wink: der reload wirkt warscheinlich wie ein ganz normaler Request.
Eine Möglichkeit wäre dem neuzuladenem Dokument mitzuteilen wo es "hin soll".
Ich bin mir nicht sicher ob es überhaubt mit JS so möglich ist, aber ich denke daran das du die "alten Positionsdaten" per GET an das "neue" Dokument übergiebst
window.location.href = "./datei.html?scrollPos=200;
Mal so neben bei:
Ist es wirklich notwendig das die Seite alle 5 Sek neu geladen wird wenn die Daten nur alle 120 Sek neu generiert werden ?
Achso, F5 ist eine Funktion des Browsers, keine der Website ! Bei einem druck auf F5 merkt sich der Browser warscheinlich selber die gescrollte Position, läd das Dokument neu und scrollt wieder an die Position.
Gruß Arano
Moin Totty
jaa, das mit den 5 Sek leuchtet ein, hät ich mir ja auch denken können !
Und das in der Funkton "refesh()" nur die Positionen gespeichert werden hät ich auch sehen können.
Naja, das ändert fast nichts an dem was ich sagte, den nach dem reload sind die beiden Variabeln leer, evtl. existieren sie nicht einmal ! Das kanst du ganz einfach prüfen in dem du ein "alert(top.frame_scroll_Xpos);" in die Funktion "get_position()" schiebst.
Wie schon erwähnt, jede Seite fängt bei Null an und somit sind alle Daten die nur in Variabeln "gespeichert" sind verloren werden sie nicht in in einem Cookie gespeichert oder per URL übergeben.
Gruß Tobias
jaa, das mit den 5 Sek leuchtet ein, hät ich mir ja auch denken können !
Und das in der Funkton "refesh()" nur die Positionen gespeichert werden hät ich auch sehen können.
Naja, das ändert fast nichts an dem was ich sagte, den nach dem reload sind die beiden Variabeln leer, evtl. existieren sie nicht einmal ! Das kanst du ganz einfach prüfen in dem du ein "alert(top.frame_scroll_Xpos);" in die Funktion "get_position()" schiebst.
Wie schon erwähnt, jede Seite fängt bei Null an und somit sind alle Daten die nur in Variabeln "gespeichert" sind verloren werden sie nicht in in einem Cookie gespeichert oder per URL übergeben.
Gruß Tobias