Guardar la posición del scroll sin usar anclas
Volver a la misma posición sin anclas
Andrés Fernández
12/8/2008
389
0
Enviar a un amigo
Publicar comentario
Calificar el Artículo

Con este truco podremos volver a la página de la que salimos, pero a la posición vertical exacta en donde estábamos.
Primero verificamos, al cargar la página, si teníamos o no guardada una posición vertical en la propiedad name de window, que es donde vamos a guardarla. En caso afirmativo nos posicionamos en ese punto. En caso negativo, nos posicionamos al principio de la página:
<script>
window.onload=function(){
var 
pos=window.name || 0;
window.scrollTo(0,pos);
}
</
script>


Al salir de la página, guardamos la posición para tenerla disponible cuando volvamos:
<script>
window.onunload=function(){
window.name=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop);
}
</
script>


Ahora todo junto:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<script>
window.onload=function(){
var 
pos=window.name || 0;
window.scrollTo(0,pos);
}
window.onunload=function(){
window.name=self.pageYOffset || (document.documentElement.scrollTop+document.body.scrollTop);
}
</
script>  
</head>

<body>
<a href="test2.php">test1</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<a href="test2.php">test2</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<a href="test2.php">test3</a>
</body>
</html>


Finalmente, si creamos una página de testeo (test2.php en el ejemplo), que contenga un código como este:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title></title>
<
meta http-equiv="refresh" content="3;URL=test1.php" />

</
head>

<
body>
Volviendo en 3 segundos... 
</
body>
</
html>


Comprobaremos, en cualquier navegador, que volvemos a la posición exacta en la que nos encontrábamos cuando abandonamos la página que contiene el código descripto al principio.
volver
DiseñoCentell - Portfolio | Capacitación | Novedades de Diseño Gráfico y Diseño Web | Novedades de Programación Web | Contacto - Artículos de Diseño Gráfico, Diseño Web y Programación Web (FlASH, PHP, JAVASCRIPT)