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 :

fonction onbeforeunload


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut fonction onbeforeunload: double exécution sous IE
    Bonjour,
    J'ai un formulaire où je souhaite avertir l'utilisateur lorsqu'il quitte la page sans avoir enregistré sa saisie. J'utilise l'événement onbeforeunload avec une fonction de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onbeforeunload = function(){ ... }
    Sous firefox ça fonctionne parfaitement.
    Le problème sous IE c'est qu'au moment d'enregistrer le formulaire il y a un rechargement de la page et l'utilisateur reçoit mon message d'alerte "Voulez-vous quitter sans enregistrer?" au moment précis où il enregistre ses données.
    Je pense qu'il faudrait trouver une instruction qui teste si la page "rechargée" est la même que la précédente ou pas.
    Merci d'avance pour vos idées.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    il serait peut-être plus simple de désactiver le onbeforeunload dans la onsubmit du form (après avoir effectué les éventuelles vérifications) ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    il serait peut-être plus simple de désactiver le onbeforeunload dans la onsubmit du form (après avoir effectué les éventuelles vérifications) ...
    Bonjour,
    Dans le onsubmit de mon form, j'ai mis un booléen à false que je teste ensuite dans le onbeforeunload, mais ça ne fonctionne pas. Il semble que le code du onsubmit ne soit pas exécuté.

    Y a-t-il un autre moyen de désactiver le onbeforeunload dans la onsubmit ?
    Merci d'avance.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par levalp Voir le message
    Y a-t-il un autre moyen de désactiver le onbeforeunload dans la onsubmit ?
    Pour ne le désactiver qu'en cas de soumission du form, quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="if (ta_fonction_actuelle()) {window.onbeforeunload=function(){return true;}; return true;} else return false;"
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Si le form est en auto action il faut repasser à la page une variable boolean lors du submit ou utiliser une variable de session coté serveur qui indiquera à la page la valeur du boolean a passer en js
    ainsi lors du onbeforeunload la page coté client aura un boolean à tester
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Si le form est en auto action il faut repasser à la page une variable boolean lors du submit ou utiliser une variable de session coté serveur qui indiquera à la page la valeur du boolean a passer en js
    ainsi lors du onbeforeunload la page coté client aura un boolean à tester
    Merci SpaceFrog et E.Bzz pour vos suggestions, mais le onsubmit n'est pas exécuté lorsque je fais un submit du formulaire. Comment faire ?

  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 640
    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 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    mais le onsubmit n'est pas exécuté lorsque je fais un submit du formulaire.
    en cliquant sur le bouton submit ou dynamiquement par le code js ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par levalp Voir le message
    le onsubmit n'est pas exécuté lorsque je fais un submit du formulaire.
    J'ai un gros doute d'un coup

    On peut voir le code de ce onsubmit (HTML + JS) ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    J'ai un gros doute d'un coup

    On peut voir le code de ce onsubmit (HTML + JS) ?

    A+
    J'ai fait par exemple ce petit test avec un alert, il n'est pas exécuté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="bulletinCPE" method="post" action="pages/ConseilDeClasse/ConsulteBulletin.jsp" onsubmit="javascript:alert('ici');">

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Pas de "Javascript:" dans le code des évènements.
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return window.confirm('Envoyer le formulaire ?');"
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par levalp Voir le message
    le onsubmit n'est pas exécuté lorsque je fais un submit du formulaire.
    En cliquant sur le bouton submit ou en faisant un .submit() quelque part dans le code ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    En cliquant sur le bouton submit ou en faisant un .submit() quelque part dans le code ?

    A+
    En faisant un .submit(); quelque part dans le code.

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Le onsubmit n'est pas utilisé dans ce cas ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Pas de "Javascript:" dans le code des évènements.
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return window.confirm('Envoyer le formulaire ?');"
    A+
    J'ai essayé, ça n'est pas exécuté non plus.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Le onsubmit n'est pas utilisé dans ce cas ...

    A+
    Dommage... comment faire alors ?

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Ben ... tu reportes dans la fonction qui fait le .submit(), tous les test et traitements que tu comptais faire dans le onsubmit ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Ben ... tu reportes dans la fonction qui fait le .submit(), tous les test et traitements que tu comptais faire dans le onsubmit ...
    C'est déjà fait, mais en fait le window.onbeforeunload s'exécute 2 fois sous IE, ce qui fait que ça marche pas, alors qu'il ne s'exécute qu'une fois sous FF.
    De plus, lors du premier appel il ne prend pas en compte le booléen que j'ai setté. Comme s'il faisait un passage "à vide" puis ensuite le "vrai" passage.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Points : 45
    Points
    45
    Par défaut
    désolé de vous relancer mais c'est important et je n'ai pas trouvé de solution.

  19. #19
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par levalp Voir le message
    désolé de vous relancer mais c'est important et je n'ai pas trouvé de solution.
    Toujours pas ?
    Dans ce cas, montre ton code actuel : les appels aux fonctions et les fonctions elles-même (que l'on a pas encore vues).

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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