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 :

[POO] Pourquoi ca marche pas ? onLoad & onUnload...


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [POO] Pourquoi ca marche pas ? onLoad & onUnload...
    Bonjour, j'aimerais juste une explication.
    Je travaille sous Mozilla (car sinon tout fonctionne sous IE)

    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
    18
    19
    20
    21
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
      <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
        <script language="javascript">
     
          function init_formulaire(obj)
          { 
            //obj.onunload = function (){ alert("ok"); } 
            document.getElementsByTagName('body')[0].onunload = function (){ alert("ok"); }
          }
     
        </script>
     
      </head>
      <body onload="init_formulaire(this)">
      </body>
    </html>
    La ligne : document.getElementsByTagName('body')[0].onunload .....etc
    ne fonctionne pas. Si on la met en commentaires et que l'on décommente :
    obj.onunload = function (){....

    Alors la tout marche.
    Je ne comprend pas pourquoi.
    Si quelqu'un a une explication, merci

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    l'événement unload n'existe pas pour Moz;

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2007
    Messages : 889
    Points : 2 039
    Points
    2 039
    Par défaut
    Tu n'a qu'a mettre ceci :

    <script type="text/javascript" >
    init_formulaire(this);
    </script>

    au début du body ou même avant et ça fera pareil.
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Alors :
    Citation Envoyé par javatwister
    l'événement unload n'existe pas pour Moz;
    Si il existe, et il fonctionne car si l'on met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <script language="javascript">
     
          function init_formulaire(obj) { 
            obj.onunload = function (){ alert("ok"); } 
          }
        </script>
     
      </head>
      <body onload="init_formulaire(this)">
      </body>
    là le script marche pour IE et mozilla.

    Citation Envoyé par abriotde
    Tu n'a qu'a mettre ceci :

    <script type="text/javascript" >
    init_formulaire(this);
    </script>

    au début du body ou même avant et ça fera pareil.
    Désolé, mais je ne cherche pas à faire marcher mon script...
    Je cherche juste une explication :

    Quelle est la différence entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj.onunload = function (){ alert("ok"); }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('body')[0].onunload = function (){ alert("ok"); }
    La première marche sous Mozilla, pas la 2eme.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    je crois que l'événement onunload doit s'attribuer au document et non au body.

    document.body.onunload = mafonction;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bah, c'est la premiere chose que j'ai essayé.

    Mais ça ne marche toujours pas sur Mozilla.
    J'aimerais bien comprendre pourquoi.

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    réponse ici je pense :

    Chaque événement ne peut pas être associé à n'importe quel objet. Il est évident par exemple qu'un événement OnChange ne pourra pas s'appliquer à un lien hypertexte. unload c'est pour l'objet window

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    ok c'est ca...
    Merci beaucoup.

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

Discussions similaires

  1. [MySQL] 2 boucles sur une requête, pourquoi ça marche pas?
    Par MisterMacPhisto dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2007, 12h32
  2. Pourquoi ca marche pas :-(
    Par Flushovsky dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2005, 17h55
  3. Comprends pas pourquoi ca marche pas
    Par cellimo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/11/2005, 22h10
  4. [OLE DB] pourquoi ca marche pas ??
    Par aurel89 dans le forum MFC
    Réponses: 3
    Dernier message: 09/09/2005, 17h23
  5. Accept : pourquoi ça marche pas ?
    Par doudblast dans le forum Linux
    Réponses: 16
    Dernier message: 08/03/2005, 11h48

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