IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Empêcher la fermeture d'une fenetre


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut Empêcher la fermeture d'une fenetre
    Bonsoir à tous,
    J'ai passer quelques heures sur différents forums pour chercher comment empêcher la fermeture d'une page php, mais je n'ai rien trouvé de satisfaisant.
    l'utilisation de onunload dans la balise body ne marche tout simplement pas (en tout cas chez moi, avec firefox); l'utilisation de onbeforeunload ne marche qu'une fois sur deux, et ne fait qu'afficher "Cette page demande de confirmer sa fermeture ; des données saisies pourraient ne pas être enregistrées.", alors que je veux être en mesure d'empêcher la fermeture de la page (que ce soit avec ctr+w ou alt+f4) sans afficher aucun message.
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <html>
    <head>
    <script type="text/javascript">
    var confirmOnLeave = function(msg) {
        window.onbeforeunload = function (e) {
            e = e || window.event;
            msg = msg || '';
            return msg;
        };
    };
    confirmOnLeave();
    confirmOnLeave('Vous allez perdre votre travail, êtes vous sûr(e) de vouloir quitter la page ?');
    window.onbeforeunload = confirmExit;
    </script>
    </head>
    <body>...</body>
    </html>
    j'ai aussi essayer cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    	window.onbeforeunload = function(){
    		return 1;
    	};
    </script>
    à la place de la balise script, ce qui a donné le même résultat.

    C'est pourquoi je solicite votre aide !
    (je précise que c'est pour utiliser ce code sur le serveur local installé sur mon ordi, et non pour développer un site web à part entière !, donc pas de souci du coté de la gêne que cela pourrait susciter à des utilisateurs).
    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    il n'est pas possible de bloquer complètement la fermeture d'une fenêtre en JavaScript.

    puisque vous êtes seul à utiliser le serveur, vous pouvez utiliser du JavaScript pour enregistrer régulièrement le travail en cours et comme ça vous ne perdez pas de données si vous fermez le mauvais onglet.

  3. #3
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    En effet il serait possible de faire cela, mais le but n'est pas spécialement que les données soit enregistrées, mais plutôt que l'utilisateur du serveur local soit obligé de cliquer sur le bouton déconnexion, afin qu'un script de déconnexion puisse s'exécuter immédiatement à la déconnexion (et non quelques minutes plus tard); je voudrais donc empêcher les combinaisons 'alt f4' et 'ctrl w'. Si javascript est capable d'intercepter ces événements (ce que je n'ai pas vraiment réussi à faire, mais qui doit être possible par une méthode similaire à onbeforeunload), il doit bien être possible d'empêcher la fermeture du navigateur (et donc de la page en question).
    Si ce n'est vraiment pas possible en javascript, il faudra peut-être que je me tourne vers les scripts vbs afin de carrément désactiver ces combinaisons de touches tant que la déconnexion n'est pas effectuée !

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    le même système peut aussi être utilisé pour l'information de connexion.
    un code JavaScript peut envoyer toutes les 10 secondes le message "je suis là" et si le message n'a pas été reçu au bout de 30 secondes par exemple, l'utilisateur est considéré comme déconnecté.

  5. #5
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Merci de cette réponse que je vais tester;
    Sinon, n'y a-t-il pas moyen de capter l'événement de fermeture de la page pour lancer ce script de déconnexion (sur la machine client ou serveur, peut m'importe puisque c'est la même machine), sans pour autant empêcher la fermeture ?
    Si tel est le cas, quel est le nom de l'événement de fermeture (j'ai l'impression que l'événement 'onbeforeunload' ne permet que d'afficher un message prédéfini avant la fermeture, mais pas de lancer un script ?).

  6. #6
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    La question à déjà été évoquée ici...

    https://www.developpez.net/forums/d1...nbeforeunload/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Empêcher la réduction et la fermeture d'une fenetre
    Par doderic dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 13/03/2008, 14h54
  2. [debutant] Pb fermeture d une fenetre
    Par yup dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/06/2006, 17h48
  3. [ApplicationFrame][jfreechart]fermeture d'une fenetre
    Par cmoa59 dans le forum Agents de placement/Fenêtres
    Réponses: 32
    Dernier message: 15/06/2005, 10h41
  4. evenement a la fermeture d' une fenetre
    Par Sh. dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/03/2005, 13h30
  5. Detecter la fermeture d'une fenetre MsDos
    Par Akta3d dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2004, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo