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 :

getElementById ne fonctionne pas


Sujet :

JavaScript

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 37
    Par défaut getElementById ne fonctionne pas
    Bonjour à tous,
    j'ai un souci qui me prend la tête depuis le début de la matinée avec mon javascript. Pourtant le code est très simple, mais je comprend pas pourquoi ça marche pas !
    Le code que je veux mettre dans ma page n'est pas vraiment celui-ci mais même celui que je joint à ce message ne fonctionne pas.
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     
    "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
     
    <head>
     
    <title>Document sans nom</title>
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">
     
    function messagealert()
     
    {
     
    alert("Message Alerte");
     
    }
     
    document.getElementById("image").onclick=messagealert;
     
    </script>
     
    </head>
     
     
     
    <body>
     
    <img id="image" src="image.jpg">
     
    </body>
     
    </html>


    Au niveau évènement, quand c'est moi qui écrit, rien ne fonctionne, j'ai essayé pleins de choses, quand je recopie le code de tutoriaux ça ne fonctionne pas non plus... c'est dingue !

    Pourriez-vous m'aidé s'il vous plait parce que je ne trouve rien à ce sujet.
    Merci

  2. #2
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 27
    Par défaut
    Salut salut,
    Au moment où tu déclare le comportement de l'événement onclick ton image n'est pas chargé!
    Les éléments de ta page se charge dans l'ordre...
    Tu peux attribuer tes événenements lorsque survient l'événement onload par exemple.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 37
    Par défaut
    D'accord, alors ça veut dire que je doit mettre quelque chose comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    document.onload=function(){
    function messagealert()
    {
    alert("Message Alerte");
    }
    document.getElementById("image").onclick=messagealert;
    }
    Mais ça ne fonctionne pas chez moi

    (merci pour ta réponse)

  4. #4
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    +1 je viens de tester c'est ca.

    Ca marche en mettant le script apres le body ou en utilisant l'événement onload du body.

    Pour t'en convaincre il suffit d'executer :
    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 HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Document sans nom</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
    function messagealert()
    {
    alert("Message Alerte");
    }
    alert("AVANT : " + document.getElementById('image'));
    </script>
    </head>
     
    <body onload="alert('LOAD');document.getElementById('image').onclick=messagealert;">
    <img id="image" src="http://www.developpez.net/forums/image.php?u=547&dateline=1199956743"/>
    </body>
    <script type="text/javascript">
    alert("APRES : " + document.getElementById('image'));
    </script>
    </html>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 37
    Par défaut
    D'accord. Alors j'ai fait plusieurs essais, mais comment faut-il que je fasse pour pointer sur body et remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="alert('LOAD');document.getElementById('image').onclick=messagealert;">
    Juste avec document.onload ?

  6. #6
    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 mokadjo Voir le message
    D'accord. Alors j'ai fait plusieurs essais, mais comment faut-il que je fasse pour pointer sur body et remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="alert('LOAD');document.getElementById('image').onclick=messagealert;">
    Juste avec document.onload ?
    Ce n'est document.onload, mais window.onload
    Dans la partie <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    window.onload=function () {
    alert('LOAD');
    document.getElementById('image').onclick=messagealert;
    }
    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 37
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Ce n'est document.onload, mais window.onload
    Dans la partie <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    window.onload=function () {
    alert('LOAD');
    document.getElementById('image').onclick=messagealert;
    }
    A+
    Ok (excuse moi j'suis un peu lent à la rédaction, j'ai du mal à percuter aujourd'hui )
    Merci beaucoup les gars, je commençais à m'arracher les cheveux !
    A+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 37
    Par défaut
    En fait ma question c'est plutôt : comment puis-je faire pour définir des évènements une fois que tout est chargé (du coup).
    Si par exemple je veux mettre tout mon jvscript dans un .js et que je ne veux pas que ça apparaisse dans mon html

  9. #9
    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 mokadjo Voir le message
    En fait ma question c'est plutôt : comment puis-je faire pour définir des évènements une fois que tout est chargé (du coup).
    Pareil
    Si par exemple je veux mettre tout mon jvscript dans un .js et que je ne veux pas que ça apparaisse dans mon html
    Heu ... ça par contre ça n'a rien à voir

    A+

  10. #10
    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,
    Citation Envoyé par yamayo Voir le message
    Les éléments de ta page se charge dans l'ordre...
    Non, c'est juste que l'ordre de chargement n'est ni prévisible, ni maîtrisable ...
    Citation Envoyé par yamayo Voir le message
    Tu peux attribuer tes événenements lorsque survient l'événement onload par exemple.
    Là oui, car il ne se déclenche justement que quand tous les éléments sont chargés (quelque soit l'ordre)

    A+

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

Discussions similaires

  1. getElementById(objet.id).focus() ne fonctionne pas
    Par CPI_en_mousse dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/03/2013, 16h19
  2. Récupération de données getElementById qui fonctionne pas
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2012, 22h10
  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