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 :

onunload ne fonctionne pas


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
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut onunload ne fonctionne pas
    Bonjour!

    J'ai un problème avec une fonction javascript qui est sensée s'executer au moment où la page se ferme. Le code est celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function req2(xhr) {
              alert("mes1") ;
              if (xhr.readyState==4) {
                alert("mes2") ;
                var docXML = xhr.responseXML ;
                alert("mes3") ;
                var reponse = docXML.getElementByName("result") ;
                alert("mes4") ;
              }
            }
    Les alertes ont été ajoutées pour le déboguage. La fonction se comporte de façon très étrange.

    D'abord l'alert "mes1" apparait 4 fois, normal puisque la fonction est exécutée à chaque onreadystatechange, ensuite l'alert mes2 et mes3 apparaissent car readyState est passé à 4, par contre le dernier alert n'apparait jamais. Juste après mes3, il y a encore une fois mes1(mais juste une fois) puis mes2, mes3 et c'est fini. Pourquoi une seule fois mes1 la deuxième fois? (et d'ailleurs tant qu'on y est pourquoi tout le truc se relance une deuxième fois mais une seule fois...?)

    Mais le pire c'est si je retire le premier alert(mes1) alors là c'est carrément incroyable, rien du tout ne se passe...

    Je fais tout de travers ou quoi? Il y a quelque chose de particulier à savoir au sujet de l'évènement onunload? Merci d'avance.

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    par contre le dernier alert n'apparait jamais
    Normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var reponse = docXML.getElementsByName("result") [rang];
                alert("mes4") ;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var reponse = docXML.getElementById("result");
                alert("mes4") ;
    si tu n'a qu'un seul id result

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    Merci mais ce n'est pas ça le problème, le problème c'est que si on retire le premier alert, toute la fonction ne marche pas. Je suis parvenu à cette conclusion en faisant des tests, c'est vraiment étrange mais c'est comme ça alors j'aimerais savoir comment on peut expliquer ceci et comment faire pour éviter cela. Cette fonction n'est pas importante pour moi, j'aurais pu la laisser vide mais je ne peux pas car sans cet alert la requête ajax ne marche pas.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Par défaut
    Bonjour,

    Citation Envoyé par Amallric Voir le message
    Merci mais ce n'est pas ça le problème, le problème c'est que si on retire le premier alert, toute la fonction ne marche pas.


    Pourrait tu nous montrer le code sans l'alert pour voir?

  6. #6
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    le problème c'est que si on retire le premier alert, toute la fonction ne marche pas.
    Si ça doit fonctionner, mais le changement de page empêche de voir le résultat (voire de terminer le traitement éventuellement). Les alert permettent de figer la page, donc de te laisser le temps de constater que tu es bien entré dans ta fonction...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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