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
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.