событие нажатия кнопки вяло или медленно реагирует

Вы можете попробовать обработчик событий popstate , например:

window.addEventListener('popstate', function(event) {
    // The popstate event is fired each time when the current history entry changes.

    var r = confirm("You pressed a Back button! Are you sure?!");

    if (r == true) {
        // Call Back button programmatically as per user confirmation.
        history.back();
        // Uncomment below line to redirect to the previous page instead.
        // window.location = document.referrer // Note: IE11 is not supporting this.
    } else {
        // Stay on the current page.
        history.pushState(null, null, window.location.pathname);
    }

    history.pushState(null, null, window.location.pathname);

}, false);

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

Событие popstate запускается каждый раз, когда изменяется текущая запись истории (пользователь переходит в новое состояние). Это происходит, когда пользователь нажимает кнопки «Назад / Вперед» браузера или когда программно вызывается методы history.back(), history.forward(), history.go().

event.state является свойством события, равным истории state.

Для синтаксиса jQuery оберните его (чтобы добавить даже приемник после того, как документ готов):

(function($) {
  // Above code here.
})(jQuery);

См. также: window.onpopstate при загрузке страницы


См. также примеры на странице Single-Pages Apps и HTML5 pushState :


Это должно быть совместимо с Chrome 5+, Firefox 4+, IE 10+, Safari 6+, Opera 11.5+ и т. Д.

0
задан TeleJim 31 December 2018 в 01:17
поделиться