Dans mon application de chat, j'ai besoin d'obtenir la confirmation de l'utilisateur, lorsque mon application se ferme.
J'ai donc utilisé le window.onbeforeunload
pour l'alerte de confirmation et window.onunload
pour logout()
.
-
Mais les deux fonctions fonctionnent dans IE et Chrome. (L'application fonctionne bien)
-
window.onbeforeunload
ne fonctionne pas dans Opera et mon message ne s'affiche pas dans Firefox. -
window.onunload
ne fonctionne pas dans Safari, Opera et Firefox.
Mon code JavaScript sera :
// Used for confirmation, to closing the window
window.onbeforeunload = function () {
return "Are you sure want to LOGOUT the session ?";
};
// Used to logout the session, when browser window was closed
window.onunload = function () {
if((sessionId != null)&&(sessionId!="null")&& (sessionId != ""))
logout();
};
J'ai également essayé la même fonction avec JQuery,
<script type="text/javascript">
$(window).on('beforeunload', function() {
return 'Are you sure want to LOGOUT the session ?';
});
$(window).unload(function() {
if ((sessionId != null) && (sessionId != "null") && (sessionId != "")) {
logout();
}
});
</script>
0 votes
Cela fonctionne sur mon Firefox, sauf que le message n'est pas celui que vous avez envoyé. jsfiddle.net/yhx6d
0 votes
Merci pour votre réponse ... Oui, le message ne s'affiche pas. déconnexion() ne fonctionne pas. Cela signifie que window.onunload() ne fonctionne pas ?
0 votes
window.onbeforeunload et window.onunload ne fonctionne pas dans Opera ?
1 votes
Opéra ne prend pas en charge
onbeforeunload
et son soutien àonunload
inachevé.0 votes
Marcel Korpel Merci pour votre réponse ... onunload de manière incomplète. Que voulez-vous dire ? Je ne comprends pas.
0 votes
onunload
ne se déclenche pas en toutes occasions, AFAIK pas lors de l'utilisation du bouton retour et d'autres événements similaires (il suffit de suivre le lien que j'ai fourni). BTW, vous devriez m'appeler sans espace entre le signe at et mon nom.0 votes
@Marcel Korpel Merci pour votre explication.
0 votes
@RobW : Avez-vous réellement testé cela ? Opera 12.12 sur Linux dit
false
à'onbeforeunload' in window
.0 votes
@MarcelKorpel Testé en 12.50, et il n'existe pas (même si un représentant d'Opera soutien annoncé dans ce commentaire ). (note : Pour tester si l'événement est supporté, il suffit de vérifier si
window.onbeforeunload === null
).1 votes
Veuillez vérifier stackoverflow.com/questions/5548505/ pour le problème de firefox
0 votes
Merci pour votre réponse, elle a fonctionné dans tous les navigateurs, à l'exception de celui de l'Internet. opéra .