Изменить поведение кнопки «Назад» в браузере для моего веб-приложения?

Я делаю веб-страницу в стиле приложения. Фактическая страница шире, чем окно просмотра браузера, переполнение которого скрыто. Щелчок по разным ссылкам изменяет CSS для анимации разных разделов. Вот очень простая демонстрация: http://smartpeopletalkfast.co.uk/pos/

На данном этапе я работаю над демо, а не над продакшн-сайтом. Я хочу перехватить кнопку «Назад» браузера, поэтому, если вы перешли к разделу, вы вернетесь к предыдущему разделу, а не покинете веб-страницу.В идеальном мире это произошло бы с теми же анимациями, которые я использовал для навигации по разделам.

Можно ли этого добиться? Из исследований я не думаю, что возможно перехватить и отключить кнопку возврата браузера по умолчанию.

Я знаю, что на этом сайте много сообщений об отключении кнопки «Назад» в браузере, и обычно ответ НЕТ! Однако переход к разным разделам на моей странице похож на переход к отдельным страницам, поэтому я думаю, что то, чего я пытаюсь достичь, соответствует ожиданиям пользователей.

Нечто подобное обычно достигается с приложениями на основе AJAX с помощью History API HTML5. Насколько я понимаю, вам нужно добавить URL-адреса с фрагментами в историю браузера, например, mysite.com#section2. Однако я не уверен, что это сработает для меня, поскольку горизонтальная прокрутка не основана на ссылках фрагментов, как может быть вертикальная прокрутка. Может быть, я мог бы использовать JavaScript, чтобы определить, когда URL-адрес заканчивается фрагментом, например #section2, и изменить CSS, чтобы 2-й раздел находился в области просмотра? Я полагаю, что не было бы никакого способа оживить это?

7
задан Evanss 20 March 2012 в 14:24
поделиться