Automatisches Scrollen beim Seitenwechsel

F

Florian42

Guten Tag

Ich habe eine Anleitung mit mehreren Seiten. Der Link zum Umschalten auf die nächste Seite ist jeweils ganz unten. Dazu muss man ein wenig scrollen. Nun schnallt der Browser beim wechseln der Seite immer wieder ganz nach Oben (da ist noch ein Header-Bild oben dran), was mir nicht gefällt. Also habe ich folgendes JavaScript gebastelt:

<script title="text/JavaScript">
var destination;
function getScrollXY(destination) {
var scrOfX = 0, scrOfY = 0;
if( typeof( window.pageYOffset ) == 'number' ) {
//Netscape compliant
scrOfY = window.pageYOffset;
scrOfX = window.pageXOffset;
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
//DOM compliant
scrOfY = document.body.scrollTop;
scrOfX = document.body.scrollLeft;
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
//IE6 standards compliant mode
scrOfY = document.documentElement.scrollTop;
scrOfX = document.documentElement.scrollLeft;
}
var url = destination + "?scrX=" + scrOfX + "&scrY=" + scrOfY;
window.location.replace(url);
}
function scroll (x,y) {
window.scrollTo(x, y);
}
</script>

Dazu ein wenig PHP:
<?php
if (htmlspecialchars($_REQUEST['scrX']) != "")
{
$scrOfX = $_REQUEST['scrX'];
}
else
{
$scrOfX = 0;
}
if (htmlspecialchars($_REQUEST['scrY']) != "")
{
$scrOfY = $_REQUEST['scrY'];
}
else
{
$scrOfY = 0;
}
?>

und die Onload-Option im Body:

<body onload="javascript:scroll(<?php echo $scrOfX.','.$scrOfY;?>)">

Implementiert wird das Script im HTML-Link-Tag:
<a href="javaScript:getScrollXY('2.html')" name="Seite 2">2</a>

Mein Problem: Das funktioniert nur, wenn JavaScript im Browser aktiviert ist. Die Anleitung soll allerdings auch ohne JavaScript (halt wie bisher, dass der Browser nach oben schnallt) funktionieren. Also wer JavaScript unterstützt ist im Vorteil, bei dem wird automatisch gescrollt, wer JavaScript nicht untzerstützt kann die Dokumentation trotzdem in vollem Umfang nutzen.

Also wie kann ich das so hin biegen, dass beide Varianten (mit und ohne JS) funktionieren?

Vielen Dank für eure Hilfe!
 
Mittlerweile habe ich selber eine Lösung gefunden:

Ich habe im JavaScript noch ein "return false;" eingefügt und den Link wiefolgt gestaltet:

<a href="seite2.php" onClick="return getScrollXY('seite2.php')" name="Seite2">2</a>

Wenn jemand noch eine bessere Lösung kennt bin ich gerne bereit von ihm zu lernen :)

Momentan frage ich mich noch, ob meine Lösung XSS-Sicher ist?
 
Zurück