Подтвердить что ты не робот

Обнаружение событий браузера

Я создаю веб-сайт Html 5 с использованием состояния push, и мне интересно, можно ли его использовать в javascript или JQuery, чтобы определить, была ли нажата кнопка возврата браузера. Я хотел бы включить его в оператор if следующим образом:

if (back_btn clicked){
//do stuff
}
if (forward_btn clicked){

}
4b9b3361

Ответ 1

Вы ищете событие popstate.

Пример:

window.onpopstate = function(event) {
    alert("location: " + document.location);
}

Или с популярным jQuery:

$(window).on('popstate',function(event) {
    alert("location: " + document.location);
});

Это срабатывает всякий раз, когда происходит доступ к истории, например, назад/вперед. Быстрое замечание, в Chrome это также срабатывает при загрузке страницы, поэтому быстрый способ проверить, является ли событие нулевым.

if(event.originalEvent.state!=null){
    // do something
}

Другим хорошим ресурсом является History.js плагин jQuery, который имеет резервную копию с использованием хэштегов и т.д. Это также делает обнаружение всплывающих событий очень простым.

Ответ 2

И для AngularJS

$window.onpopstate = function(e) {
    $window.alert("location: " + $location.path());
}