91 votes

jquery beforeunload lors de la fermeture (et non de la sortie) de la page ?

Comment puis-je afficher "Are you sure you want to leave the page ?" lorsque l'utilisateur tente effectivement de fermer la page (en cliquant sur le bouton X de la fenêtre ou de l'onglet du navigateur) et non lorsqu'il tente de s'éloigner de la page (en cliquant sur un autre lien).

Mon client souhaite qu'un message apparaisse lorsque l'utilisateur tente de fermer la page : "Êtes-vous sûr de vouloir quitter la page ? Vous avez encore des articles dans votre panier".

Malheureusement $(window).bind('beforeunload') ne se déclenche pas uniquement lorsque l'utilisateur ferme la page.

jQuery :

function checkCart() { 
  $.ajax({
    url : 'index.php?route=module/cart/check',
    type : 'POST',
    dataType : 'json',
    success : function (result) {
       if (result) {
        $(window).bind('beforeunload', function(){
          return 'leave?';
        });
       }
    }
  })
}

0voto

raduns Points 576

Essayez ceci, en chargeant les données via ajax et l'affichage par le biais de l'instruction de retour.

<script type="text/javascript">
function closeWindow(){

    var Data = $.ajax({
        type : "POST",
        url : "file.txt",  //loading a simple text file for sample.
        cache : false,
        global : false,
        async : false,
        success : function(data) {
            return data;
        }

    }).responseText;

    return "Are you sure you want to leave the page? You still have "+Data+" items in your shopping cart";
}

window.onbeforeunload = closeWindow;
</script>

-2voto

halkujabra Points 1004

Vous pouvez essayer ' onbeforeunload événement.

Jetez aussi un coup d'oeil à ceci.

La boîte de dialogue fonctionne pendant 1 seconde et disparaît ?

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