86 votes

Interception de l'appel au bouton retour dans mon application AJAX

J'ai une application AJAX. Un utilisateur clique sur un bouton et l'affichage de la page change. Ils cliquent sur le bouton de retour, s'attendant à aller à l'état d'origine, mais à la place, ils vont à la page précédente dans leur navigateur.

Comment puis-je intercepter et réattribuer l'événement de bouton retour ? J'ai regardé dans des bibliothèques comme RSH (que je n'ai pas pu faire fonctionner...), et j'ai entendu dire que l'utilisation du hash tag aide en quelque sorte, mais je n'arrive pas à le comprendre.

10voto

Il est très facile de désactiver le bouton de RETOUR du navigateur, comme le code JQuery ci-dessous :

// History API 
if( window.history && window.history.pushState ){

  history.pushState( "nohb", null, "" );
  $(window).on( "popstate", function(event){
    if( !event.originalEvent.state ){
      history.pushState( "nohb", null, "" );
      return;
    }
  });
}

Vous pouvez le voir fonctionner et d'autres exemples ici dotnsf et ici thecssninja

Merci !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X