0 votes

Comment puis-je fournir une confirmation pour la fermeture d'une fenêtre d'Internet Explorer ?

Mon entreprise utilise une application Web qui comporte de longs formulaires que l'utilisateur remplit. Certains de ces formulaires sont enregistrés au fur et à mesure (de sorte que vous pouvez fermer la fenêtre et y revenir), mais d'autres ne peuvent être enregistrés que lorsqu'ils sont entièrement remplis. Nous recevons quotidiennement des appels d'utilisateurs qui ont "accidentellement" cliqué sur le bouton de fermeture de leur fenêtre IE. Ne me demandez pas comment cela se produit, mais les appels sont constants depuis la mise en place du système. J'ai été chargé de trouver une solution.

On m'a d'abord demandé s'il existait un moyen de supprimer entièrement le X, mais je ne pense pas que ce soit le cas. Mon idée est donc de fournir un message aux utilisateurs lorsqu'ils cliquent sur le X, leur rappelant que leur travail peut ne pas être sauvegardé, ou au moins leur confirmant qu'ils veulent fermer la fenêtre. Comme je ne peux pas modifier le site Web de l'application de quelque manière que ce soit, je l'intégrerais dans un fichier HTML qui comprendrait un code permettant de détecter le moment où la fenêtre est sur le point de se fermer. Mes questions sont les suivantes :

  1. Est-ce possible ?
  2. Comment dois-je m'y prendre ?
  3. Y a-t-il un meilleur moyen ?

À propos, je suis un développeur d'applications, donc je comprends les concepts de programmation, mais je n'ai jamais, jamais fait de développement web.

Merci d'avance !

2voto

Bryan Kyle Points 5931

Vous pouvez demander à l'utilisateur de renvoyer une chaîne de caractères à partir de l'outil onBeforeUnload gestionnaire d'événements. Le navigateur ajoutera son propre message avant et après la chaîne de caractères que vous renvoyez, et placera les boutons "OK" et "Annuler".

window.addEventListener('beforeunload', 
                        function() {
                          return 'Are you sure you want to close this window with unsaved changes?'; 
                        }, 
                        false);

Vous n'aurez aucun moyen de savoir si l'utilisateur a annulé, mais cela lui demandera de confirmer qu'il veut fermer la fenêtre.

1voto

pioto Points 471

Je pense que c'est ce que vous cherchez : http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx

function closeIt()
{
  return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;

Voir aussi : https://developer.mozilla.org/en/DOM/window.onbeforeunload

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