Partage
  • Partager sur Facebook
  • Partager sur Twitter

Confirmation quitter application et précedent

Javacript beforeunload et unload

    26 mai 2011 à 10:25:11

    Bonjour,

    Je suis sur un problème bizarre. Suite à mes anciens sujet sur SDZ, j'ai crée un script de déconnexion de session lorsque on quitte l'application intranet.

    Maintenant que j'ai détecter si l'utilisateur quitter le site, je doit lui demandé si il veux vraiment quitter le site.

    Je devrai utilisé mon beforeunload avec un returnValue "Voulez-vous quitter blablabla?";

    La subtilité c'est que si on clique sur OK, avant de quitter de faire ma requête AJAX synchronisée qui déconnecte la session au niveau serveur.

    Mon script fonctionne parfaitement sauf dans un cas très bizarre:
    Si tu va sur une page,
    On clique sur un Favoris
    On nous demande si on veux quitter
    On clique sur annuler
    On clique sur précédent
    Il redirige vers le précédent sans confirmation, mais fais bien le DeconnectSession

    J'ai essayer tout les combinaison : précédent puis précédent, alt+f4 puis précédent recherche google(coin haut droit) + précédent
    Dans tout ces cas cela fonctionne, mais quand je fais un favoris + précedent, sa fonctionne pas, il n'y a pas de fenêtre de confirmation, c'est à en perdre son latin !

    Voici la parti du script concerné
    Détails:
    getXMLHttpRequest() donne un objet XMLHttpRequest
    attach est éxécuté au onload
    detach est exécuté après chaque click dans le site
    /*
    /*
    * Fonction exécuté si on quitte la page
    * On envoie une demande de déconnection à l'action struts
    */
    function DeconnectSession(){
    	var xhrDeconnect = getXMLHttpRequest();
          /*
          * Le parmètre false est important, il permet de faire une requête synchone, 
          * et bloque le navigateur le temps de la requête
          */
          xhrDeconnect.open("GET", "../accueil/LogoutAction.do?exit=true", false);
          xhrDeconnect.send(null);
    }
    
    function Question(){
    	window.event.returnValue =  "Etes-vous sûr de quitter l'application PHENIX ?";
    }
    
    /*
    * Fonction pour activer l'événement anti-retour et déconnection
    */
    function attach(){
    	addEvent(window,'beforeunload',Question);
    	addEvent(window,'unload',DeconnectSession);
    }
    
    /*
    * Fonction pour désactiver l'événement antiretour et déconnection
    */
    function detach(){
    	removeEvent(window,'beforeunload',Question);
    	removeEvent(window,'unload',DeconnectSession);
    }
    



    Sinon, je ne peux pas vous montré une démo, c'est un intranet

    Merci de votre aide
    • Partager sur Facebook
    • Partager sur Twitter

    Confirmation quitter application et précedent

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown