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 :

Insérer un callback avec onbeforeunload


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut Insérer un callback avec onbeforeunload
    Bonjour j'ai une question concernant l'événement onBeforeUnload en javascript.

    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    window.onbeforeunload = test;
    function test()
    {
      return "Confirmez la fermeture...";
     
    }
    J'aimerais que si l'utilisateur clique sur "OK", cela exécute une fonction particulière (fonction Ajax qui va appeler un script PHP pour effectuer des suppression de table temporaire en fait)

    Merci de votre attention.


    Guillaume

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    window.onbeforeunload = test;
    function test()
    {
      doo=confirm("Confirmez la fermeture...")
      if(doo){
      alert ("oui")
     
      }
      else {alert("non")
      }
     return doo
    }
    </script>

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Merci de votre réponse rapide. En fait j'avais commencé par cette version de confirmation.

    Mais elle ne plait pas car dans ce cas, le navigateur repose la question de confirmation avec comme message (true/false) ce qui ne me convient pas...

    Cordialement,
    Guillaume

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    tu ne pourras pas contourner les messages du navigateur qui dépendent d'un paramètrage coté client ...

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par kayoum Voir le message
    Mais elle ne plait pas car dans ce cas, le navigateur repose la question de confirmation avec comme message (true/false) ce qui ne me convient pas...
    Une confirmation ne veut pas dire accepter ou non (true/false)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Je vais rentrer dans les détails alors ... peut-être ma méthode est pas la bonne.

    Je bosse sur une application qui créé des tables temporaires (plusieurs dans son cycle de vie) <EDIT>: en fait pas des tables temporaire au sens MYSQL... sinon elle sont droppées à la fin de la connexion PDO !<FIN EDIT>

    Je garde la liste des tables temporaire dans une variable de session sur le serveur.

    Lorsque l'utilisateur quitte la page, je veux :

    -lui demander une confirmation car sinon il va perdre tout son travail

    -en cas de validation, exécuter une requête AJAX qui appel un script php. Ce script lit la liste des tables dans la session et exécute les drops

    J'ai essayé cette solution:

    -onbeforeunload = fonction de confirmation
    -onUnload = appel de la suppression

    le problème c'est que quand la fonction branchée sur onUnload est exécutée, ma variable de session PHP est vide (surement parce que le navigateur informe le serveur de la déconnexion avant d'exécuter le callback)

    Voila...

    Merci encore

    Guillaume

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 643
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    pourquoi ne pas tout faire sur le onbeforeunload ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Ah bah parce que justement cela va dépendre de la réponse de l'utilisateur (voir le post avant votre propre réponse)

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il est possible d'indiquer le message généré avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onbeforeunload = function(){
        return "Etes-vous sûr de vouloir quitter cette page ?";
    };
    Le problème, c'est que tu ne peux pas gérer les actions en fonction de la réponse, mais tu peux toujours lancer ta fonction avant...

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Merci Bovino de votre aide.

    Mais justement cela va dépendre du choix de l'utilisateur.

    J'ai détaillé mon besoin en #6 je vous invite a me lire !!

    Cordialement

    Guillaume

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2009
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Quand je fais cela :

    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
     
    <script type="text/javascript">
    window.onbeforeunload = test;
    function test()
    {
      ifconfirm("Confirmez la fermeture...")
      {
        dropTable();
        return;
      }
      else
       return false;
     
    }
    </script>
    le problème est que si je clique sur Non, alors le navigateur me repose la question avec comme message "false"... Si je clique sur Oui, là c'est bon...

  12. #12
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    je pense que tu t'embourbes à chercher une solution vaine.

    pour moi, tu devrais plutôt regarder coté serveur même si je ne m'y connais pas assez en php/mysql pour te conseiller.

    tes tables temporaires n'ont pas d'office un délai d'expiration ?

    parce que pour moi, tu pourras trouver des tas de solutions salaces niveau client avec des onbeforeunload+unload ou avec popup ou autres.... mais je pense vraiment que la solution devrait être coté serveur ... par exemple en jouant avec les session et les delais.

Discussions similaires

  1. fonction callback avec arguments
    Par YuGiOhJCJ dans le forum GTK+ avec C & C++
    Réponses: 12
    Dernier message: 12/04/2013, 08h42
  2. comment insérer une ligne avec CFile::Write
    Par gbardy dans le forum MFC
    Réponses: 2
    Dernier message: 10/08/2006, 10h19
  3. Incapable d'insérer dans MySQL avec JDBC
    Par guillo14 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/06/2006, 01h26
  4. [html][CSS]insérer un lien avec css ?
    Par Phenomenium dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 16/01/2006, 20h14
  5. Fonction callback avec arguments ?
    Par sorry60 dans le forum GTK+ avec C & C++
    Réponses: 39
    Dernier message: 07/11/2005, 10h41

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