2 votos

¿Cómo puedo volver a un ancla con nombre después de desplazarme en Chrome?

Si me carga una URL con un nombre de ancla (como este), Chrome me lleva directamente a la parte de la página que contiene el ancla. Tan lejos, tan bueno.

Pero si me desplazo a su alrededor un poco, puedo perder la pista de donde se ancla. ¿Cómo puedo volver a la de anclaje con nombre?

He intentado actualizar la página, pero Chrome no me llevará de regreso a el ancla. He intentado forzado refrescante (Ctrl + F5), para ningún efecto. También he intentado Ctrl-L (para seleccionar la barra de direcciones), seguido por ENTER para volver a cargar la página.

Mi solución es cerrar la pestaña, a continuación, abra uno nuevo de nuevo con la URL completa. Esto es bastante molesto para alguien que lee mucho de las especificaciones de los documentos! Hay una manera mejor?

2voto

user202729 Puntos 156

Usted puede simplemente ejecutar JavaScript para desplazar el elemento a la parte superior de la página:

document.getElementById(location.hash.slice(1)).scrollIntoView()

Fuente: javascript - Cómo desplazarse página HTML a dado de anclaje? - Desbordamiento De Pila

Para mayor comodidad, es posible añadir javascript:document.getElementById(location.hash.slice(1)).scrollIntoView() como un marcador en la barra de marcadores, o definir un atajo de teclado para ella.

Cuando no hay hash de la URL, que va a causar un (silencio) error de JavaScript. Para desplazarse a la parte superior de la página en lugar de utilizar

(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView()

1voto

Striker_84 Puntos 1

Usar este script:

javascript: var h = location.hash ; location.hash = "" ; location.hash = h ; null

Explicación:

  • Configuración de location.hash hará que la página de desplazamiento para que el ancla.
  • Como un caso especial, estableciendo location.hash a sí mismo , es un no-op.
  • Se hace de desplazamiento, sin embargo, si lo ponemos a otra cosa y, a continuación, inmediatamente el valor original.
  • Finalmente, bookmarklets debe tener null/undefined como su valor final o (por razones históricas) que reemplace el cuerpo de la página con su valor final.

[El siguiente es sólo para "crédito extra"]

Alternativamente, se podría hacer algo a lo largo de las líneas de user202729 la respuesta. Su respuesta sólo funciona con anclajes formado por <a id="foo">. Ellos no trabajan con los anclajes que uso <a name="foo">, por ejemplo, los utilizados aquí en SU/PARA que/SE! Podemos coger esos (posiblemente con los falsos positivos-yo no explorar este enfoque tanto) con

javascript: var h = location.hash.slice(1) ; (document.getElementById(h) || document.getElementsByName(h)[0] || document.body).scrollIntoView()

Sin embargo, incluso esto no prospera en sitios como github.com que uso <a class="anchor" href="#foo">. AFAICT, es un enfoque que no estándar y requiere javascript personalizado. Mi enfoque inicial anterior funciona en todos los tres estilos de anclaje.

p.s. Me encanta la colaboración de ideas que puede provenir de la SE. La lectura de user202729 la respuesta junto con el Decano de Harding, la respuesta a Cómo desplazarse página HTML a dado de anclaje? me dio las ideas que necesita para experimentar y fideos a mi manera a mi respuesta.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: