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 :

Un getElementById qui renvoie null alors qu'il existe


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut Un getElementById qui renvoie null alors qu'il existe
    Bonjour tout le monde,

    j'ai un petit problème,

    j'aimerais changer le background-color de mon accueil de backoffice uniquement, j'ai donc voulu passer par du javascript, pour cela, c'est simple,

    j'ai dans mon html (ou php générateur de html) ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_SERVER['QUERY_STRING']==""){echo '<div id="image_accueil_admin" ><img alt="" src="style/admin_fond.png" /></div>';}
    donc dans tous les autres cas qui possèdent des variables GET, ce div et l'image ne s'afficheront pas.

    j'ai donc voulu utiliser ce div dans mon javascript comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(document.getElementById("image_accueil_admin")){
    alert("ok");
    	document.getElementById("content_admin").style.backgroundColor="Linen";}
    Le alert ne passe pas, donc on entre pas dans la condition, et on entre pas dans la condition car quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById("image_accueil_admin"));
    Il m'affiche "null". Alors que le div id="image_accueil_admin", est bien présent.

    je comprends pas pourquoi sachant que j'avais utilisé le même procédé avec jquery une fois, j'avais fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	if(!document.getElementsByClassName("test_im")[0]){
    		$('#wrap').hide();
    	}
    et ça marchait... c'est pas tout à fait pareil mais le principe c'est le même.
    merci

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Que dit le code HTML généré ?

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Tu rencontres ce problème dans quel navigateur ? (et version ?)

    Autre chose : quand tu dis
    Citation Envoyé par Marc22
    (div id="image_accueil_admin") est bien présent
    tu veux dire présent dans le DOM, constaté par l'intermédiaire d'un inspecteur DOM ? ou bien dans ton code source ? ou graphiquement affiché par la fenêtre du navigateur ? Quoi qu'il en soit, vermine a raison : ca serait plus clair avec le code de ta page sous les yeux ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  4. #4
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    merci pour vos réponses,

    je disais qu'il est bien présent car l'image de fond s'affiche, mais elle n'est pas entourée du background-color comme je veux.

    Présent dans le DOM, je ne sais pas exactement ce que ça veut dire.

    Et dans le code source, elle s'affiche bien, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="cont_admin"><div id="image_accueil_admin" ><img alt="" src="style/admin_fond.png" /></div></div>
    je précise que le "cont_admin" est un sous conteneur de content_admin, et qu'il n'y a pas de confusion là dessus. Il sert juste à englober la page, sans le menu.

    Ah et aussi, mon code javascript n'est pas dans le head, mais j'ai testé en le mettant dans le head, ça n'a rien changé.

  5. #5
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Marc22 Voir le message
    Ah et aussi, mon code javascript n'est pas dans le head, mais j'ai testé en le mettant dans le head, ça n'a rien changé.
    Fais un essai en appelant ton fameux code depuis le onload du body, il est possible que le DOM (la représentation de ta page dans la mémoire du navigateur, sous forme arborescente) ne soit pas totalement chargé quand ton code s'exécute.

    Tiens, en parlant du DOM :
    Un outil qui change la vie (heu, je veux dire : qui change la vie du développeur web )

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  6. #6
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    Merci beaucoup Romain.

    en mettant le code dans une fonction et en l'appelant dans le body, ça fonctionne.

    mais pourquoi des fois ça marche sans passer par des fonctions, ni par le onload, et des fois ça marche pas?

    sinon concernant cet outil, je l'ai installé, mais c'est un peu incompréhensible pour moi par exemple dans le cadre en haut à droite, ça me parle pas beaucoup.



    est ce que l'action de l'inspecteur dom ne rejoint pas une fonctionnalité de firebug ou c'est un outil différent?

    merci pour tout en tout cas

  7. #7
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Par rapport à la fenêtre en haut à droite dans DOM inspector, tu peux choisir le type d'informations à afficher. Clique sur l'icone à gauche de la ligne de titre "Objet - JavaScript Object", et choisis "DOM Node", ça sera probablement déjà plus parlant

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  8. #8
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    très bien, je vais inspecter un peu tout ça

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

Discussions similaires

  1. Criteria Hibernate renvoie NULL alors qu'il devrait pas :S
    Par Disciple195 dans le forum Tomcat et TomEE
    Réponses: 10
    Dernier message: 19/06/2009, 10h45
  2. COUNT qui renvoie null au lieu de 0
    Par gomodo dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/02/2008, 14h50
  3. Requête qui renvoie 'Null'
    Par Invit-é dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 11/06/2007, 17h32
  4. [SPL] Rewind() qui renvoie NULL
    Par fadeninev dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/06/2006, 15h44
  5. [JDBC]Un new qui renvoie null...
    Par Ditch dans le forum JDBC
    Réponses: 4
    Dernier message: 03/01/2005, 13h14

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