Tengo algunos javascript que pueden aparecer en muchas páginas diferentes. Algunas veces se ha accedido a esas páginas a través de una URL que contiene una referencia de anclaje (# comment-100, por ejemplo). En esos casos, quiero que javascript demore la ejecución hasta que la ventana haya saltado. En este momento estoy usando un retraso, pero es bastante hackish y obviamente no funciona en todos los casos. Parece que no puedo encontrar ningún tipo de evento DOM que corresponda a la ventana "saltar".¿Cómo puedo saber si una página saltó al ancla (#) en javascript?
Aparte de la simple demora, la única solución que he encontrado es hacer que el JS busque el ancla en la URL y, si encuentra una, ver los cambios en scrollTop. Pero parece fallar, y no estoy 100% seguro de que mi script siempre se dispare antes de que ocurra el desplazamiento, por lo que solo se ejecutará si el usuario desplaza manualmente la página. De todos modos, realmente no me gusta la solución y preferiría algo más impulsado por el evento. ¿Alguna sugerencia?
Editar para aclarar:
No estoy tratando de detectar un cambio de hash. Tomemos el siguiente ejemplo:
- página index.php contiene un enlace a post.php # comment-1
- usuario hace clic en el enlace a post.php # comment-1
- post.php # comentario- 1 cargas
- $ (document) incendios ready
- No mucho más tarde, los rollos del navegador hacia abajo a # comment-1
estoy tratando de detectar de forma fiable cuando ocurre el paso 5.
'$ (document) ready()' incendios demasiado pronto? –
Sí, lamentablemente sí. – Aaron