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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    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

    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
    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+

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    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

    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
    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+

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    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 confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    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 ?

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