scrollposition beim reload

JesusFreak777

Erfahrenes Mitglied
Hallo,

momentan lade ich eine Seite mit dieser Zeile alle z.B. 15 Sekunden neu:
PHP:
echo '<meta http-equiv="refresh" content="'.$reloadtime.'; URL='.$_SERVER['PHP_SELF'].'">';
--> jede andere Lösung wäre mir auch recht (sollte nur "zuverlässig" sein)

jetzt möchte ich aber das beim Neuladen die Seite nicht immer nach oben Springt sondern immer die Position beibehält, ist sowas möglich? Und wenn ja wie stelle ich das am besten an?

mfg
 
Die Antwort auf diese Frage würde mich auch brennend interessieren. Ich hatte nämlich schon das gleiche Problem, allerdings mit horizontalem Scrolling.

Im betreffenden Thread bekam ich damals leider keine Antworten :-(

Grüße,
Frezl
 
Na dann helfe ich euch mal aus.

Hier ein Beispiel, welches so in FF und Chromium funktioniert. Für andere Browser müsst ihr euch mit Browser-weichen herumschlagen, um die aktuelle Scroll-Position auszulesen. Aber da gibt es im Netz diverse Beispiele.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html id="html" xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	
	<title>Refresh and scrolling</title>
</head>

<body>
	<div>
		Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />
		Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />
		Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />
		Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />Test<br />	TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest
	</div>
	
	<script type="text/javascript">
	/* <![CDATA[ */
		window.onload = function() {
			//Scroll Position aus Hash auslesen
			var hash = window.location.hash;
			
			//Prüfen ob Hash zwei kommagetrennte Zahlen enthält
			if(/#[0-9]+,[0-9]+/.test(hash)) {
				var both = hash.substr(1).split(/,/);
				
				//Scrollen
				window.scrollTo(both[0], both[1]);
			}
			
			
			//Verzögerung für reload
			var delay = 3000;
			
			window.setTimeout(function() {
				var
					url = window.location.href,
					i = url.indexOf('#'),
					//Sollte noch cross-browser-fähig gemacht werden
					top = window.pageYOffset,
					left = window.pageXOffset;
				
				//Hat die Adresse bereits einen Hash angehängt, dann entfernen
				if(i != -1)
					url = url.substr(0, i);
				
				//Aktuelle scroll position als Hash anhängen
				url += '#' + left + ',' + top;
				
				//Seite/Url neu laden
				window.location = url;
				window.location.reload();
			}, delay);
		};
	/* ]]> */
	</script>
</body>

</html>
 
Zurück