web-dev-qa-db-fra.com

JQuery lorsque le bouton de retour est enfoncé

J'ai un clic qui change les choses sur la page lorsque vous cliquez dessus. Je me demandais s'il y avait un moyen de déclencher un effet lorsque vous appuyez sur le bouton de retour du navigateur

11
user2568107

Vous pouvez en quelque sorte le faire en utilisant l'événement popstate:

window.onpopstate = function() {
  alert("pop!");
}

ou dans jQuery :

$(window).on('popstate', function(event) {
 alert("pop");
});

Cependant, cela se déclenchera également lors de la navigation en avant, pas seulement en arrière. 

13
user1721135

Désactiver l'URL

$(function() {
    if (window.history && window.history.pushState) {
        window.history.pushState('', null, './');
        $(window).on('popstate', function() {
            // alert('Back button was pressed.');
            document.location.href = '#';

        });
    }
});
7
Sakthi Karthik

Vous pouvez simplement déclencher l'événement «popState» dans JQuery, par exemple:

$(window).on('popstate', function(event) {
    alert("pop");
});

C'est assez pour ce que vous avez demandé… mais voici quelques événements supplémentaires sur la fenêtre pour aller avec…

$(window).on('pushstate', function(event) {
    alert("Push");
}); // This one pushes u to forward page through history...

window.history.replaceState(); //work exactly like pushstate bt this one replace the history instead of creating new one...
window.history.backward(); // To move backward through history, just fire this event...
window.history.forward();// To move forward through history ...
window.history.go(-1); // Go back to one page(or whatever value u passed) through history
window.history.go(1); // Go forward to one page through history..
1
iamitpkumar