В новых браузерах лучше сохранять готовые к отображению предыдущие страницы при использовании кнопок «назад» и «вперед».Так что, вероятно, происходит то, что ваш браузер просто повторно отображает страницу после того, как $("body").fadeOut(500, redirectPage);
завершил выполнение.То есть к странице, отображаемой после нажатия кнопки «Назад», применяется стиль * 1002. *.
. У меня не было проблем при навигации по вашей странице в Chrome «6.0.472.51 бета» с помощью кнопок «назад» и «вперед».Когда я использовал Firefox 3.5, я увидел описанную проблему при использовании кнопки «Назад» для возврата на страницу указателя.Используя Firebug, я смог подтвердить, что стиль элемента body был установлен на display: none
.
. Итак, вы видите, что FireFox bfcache сохраняет страницу в предыдущем состоянии, JavaScript ивсе.Если вы хотите, чтобы Firefox повторно запустил ваш код постепенного изменения, вы можете присоединить его к событию pageshow
в Firefox.Аналогично, WebKit имеет свой собственный механизм page caching (который повлияет на Safari и Chrome).
Следует также отметить, что функция jQuery .ready()
имеет значение не то же самое, что и функция window.load()
.См. документацию для получения дополнительной информации. исходный код для функции .ready()
также весьма полезен.
Подведем итог: код, выполняемый $.ready()
, выполняется до , страница фактически отображается,В более новых браузерах, когда вы уходите со страницы, очень вероятно, что браузер сохранит состояние этой страницы точно так же, как и при выходе из нее.Таким образом, когда вы используете кнопку «Назад» браузера, чтобы вернуться на страницу, страница не будет отображаться повторно.То есть DOM не будет перестроен, а функция $.ready()
не будет перезапущена.Если у вас есть код, который нужно запускать каждый раз, когда на странице отображается , отображается , тогда присоедините код к методу pageshow()
(если он существует).