Как отличить браузер назад / вперед? - PullRequest
7 голосов
/ 23 января 2010

Возможно ли это? еще лучше, это возможно с JQuery?

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

Ответы [ 5 ]

5 голосов
/ 23 января 2010

Вы можете использовать действительно простую историю библиотеку

Но если вы хотите обработать это самостоятельно, вы можете использовать хеш-ключ (window.location.hash), установив, например, номер слайда. Когда пользователь щелкнет назад или рядом, ключ хеша изменится, вы обнаружите его и внесете изменение.

К сожалению, вы должны проверить изменение самостоятельно, установив интервал (то есть: 300 мс) и проверить с предыдущим значением. В HTML5 есть событие onhashchange.

3 голосов
/ 07 апреля 2010

@ David

Поскольку кнопки возврата браузера не отслеживают запросы AJAX, разработчики не имеют иного выбора, кроме как восполнить это отсутствие функциональности. Используя jquery, мы должны вручную отслеживать запросы ajax и вручную повторно запрашивать частичные страницы, чтобы дать пользователям то, что они хотят и ожидают.

2 голосов
/ 23 января 2010

Вы можете использовать историю объекта. Он имеет массив посещенных страниц. Самая последняя запись - это последняя страница кнопки «Вперед» или «Назад».

2 голосов
/ 23 января 2010

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

1 голос
/ 23 января 2010

Один из наших руководящих принципов проектирования заключается в следующем:

НИКОГДА, НИКОГДА, НИКОГДА НЕ ПЕРЕКРЫВАЙТЕ КНОПКУ НАЗАД.

Это означает не мешать его работе, а значит оставить его в покое.

Если вы ДОЛЖНЫ знать, на какую кнопку нажал пользователь, вам в значительной степени не повезло, и это сделано специально. Парни, которые пишут браузеры, не хотят, чтобы вы это делали. Я не хочу, чтобы вы вмешивались в работу кнопки возврата. Пользователи не хотят, чтобы вы. Итак, НЕ.

/ декламация.

...