Cuando una página carga un iframe con una url que termina en un #, la página principal se desplaza para que el cuerpo del iframe esté en la parte superior de la ventana del navegador.Evitar # ancla en un iframe al desplazarse por la ventana del navegador
Demostración: http://jsfiddle.net/dTQEE/1/
Si el URL termina en #
, por ejemplo http://foo.com#
, el navegador asume que desea ir a la parte superior de la página.
¿Cómo se evita que la ventana primaria se desplace cuando se carga un iframe con un fragmento hash?
El problema ocurre en Chrome, no estoy seguro si es un problema en otros navegadores.
En este momento la mejor solución que tengo es usar el.addEventListener('scroll', ...)
para restablecer el scrollTop
a 0 si no es 0. Esto funciona, pero el desplazamiento hacia abajo y hacia arriba son muy notables.
¿Cómo está obteniendo la URL del marco? ¿No es posible verificar/editar antes de cargarlo? – sdleihssirhc
Gracias por la sugerencia, pero el # podría tener algún significado para el sitio web que lo recibe. JS en la página dentro del iframe podría estar usándolo, así que no puedo quitarlo por completo. –
¿Alguna vez resolvió esto para usted? –