nuevos navegadores son mejores en mantener las páginas anteriores listos para mostrar cuando se utilizan los botones de avance y retroceso. Entonces, lo que probablemente está sucediendo es que su navegador simplemente está volviendo a mostrar la página después de que el $("body").fadeOut(500, redirectPage);
haya terminado de ejecutarse. Es decir, la página que se muestra después de hacer clic en el botón Atrás tiene aplicado el estilo body { display: none; }
.
No he tenido problemas navegar por la página con Chrome "beta 6.0.472.51" utilizando los botones de avance y retroceso. Cuando utilicé Firefox 3.5 vi el problema descrito al usar el botón Atrás para volver a la página de índice. Utilizando Firebug, pude confirmar que el estilo del elemento del cuerpo estaba establecido en display: none
.
Así que lo que está viendo es de Firefox bfcache mantenimiento de la página en el estado anterior, JavaScript y todo. Si quieres que Firefox vuelva a disparar tu fundido en el código, puedes adjuntarlo al evento pageshow
de Firefox. Del mismo modo, WebKit tiene su propio mecanismo pagecaching (que afectaría a Safari y Chrome).
También hay que señalar que la función de jQuery .ready()
es no lo mismo que la función window.load()
. Vea el documentation para más detalles. El source code para la función .ready()
también es bastante útil.
En resumen: el código ejecutado por $.ready()
se ejecuta antes de la página se muestra realmente. En los navegadores más nuevos, cuando navega desde una página es muy probable que el navegador guarde el estado de esa página exactamente como está cuando lo abandona. Por lo tanto, cuando usa el botón Atrás del navegador para regresar a la página, la página no se volverá a procesar. Es decir, el DOM no se reconstruirá y la función $.ready()
no se volverá a disparar. Si tiene código que necesita para ejecutarse cada vez que la página se muestra luego coloque el código para el método pageshow()
(si existe).
¡Sí! Eso lo hizo, gracias! – Rembrand