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 :

[DOM] Element parent d'une div créée dynamiquement


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut [DOM] Element parent d'une div créée dynamiquement
    Bonjour,

    je crée une div dynamiquement pour afficher des informations dans une fenêtre.
    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
    function CreationFenetre(){
    
    	newDiv = document.createElement("div");
    	newDiv.id ='Idiv';
    	
    	newDivInt = document.createElement("div");
    	newDivInt.id='IdivContenuFenetre';
    	
    	newImg = document.createElement("img");
    	newImg.className ="Iferme";
    	newImg.src='img/icons/fail.gif';
    	newImg.onclick = function(){FermeFenetre()} ;
    	
    	newDiv.appendChild(newImg);
    	newDiv.appendChild(newDivInt);
    	document.body.appendChild(newDiv);
    	
    	CreationDivRealise=true;
    
    }
    Cette fonction JS est appelée par un script PHP. Et j'aimerais afficher cette fenêtre devant mon script PHP mais je ne sais pas comment spécifier à cette fenêtre son élément parent. J'ai essayé document.body mais comme c'est du PHP il n'y a pas de body. Pouvez vous m'aider ?
    Merci

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Soit il y a un truc que je n'ai pas compris (ou que tu n'as pas expliqué ), soit tu commets une grosse erreur dans ta compréhension du mécanisme.
    • Ton code PHP crée une page HTML (qui peut contenir du JavaScript)
    • Une fois cette page créée, ton serveur l'envoie au navigateur.
    • Le navigateur interprète le JavaScript et affiche la page (éventuellement dans l'autre sens, ça dépend comment ta page est construite et où sont placés tes scripts)

    Donc quand ta fonction est exécutée, le body existe bel et bien !

  3. #3
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Oui c'est vrai tu as raison j'avais pas vu ça comme cela. Donc si j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.appendChild(newDiv);
    ça devrait fonctionner ? Mais Firebug me dit
    Et si je rajoute des balises body autour de mon script PHP ma fenêtre s'affiche correctement. Mais je trouve que ça fait pas très propre comme code PHP !

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Le navigateur interprète le JavaScript et affiche la page (éventuellement dans l'autre sens, ça dépend comment ta page est construite et où sont placés tes scripts)
    Si ta fonction est appelée avant que la page ne soit construite, les éléments (et donc le body) ne sont pas encore intégrés dans le DOM, donc document.body est null.
    Habituellement, on procède soit par :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="ma_fonction()">
    soit dans le head, entre les balises script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload = function(){
        ma_fonction();
    }

  5. #5
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    En effet je n'avais pas vu le code source de ma page
    Encore une boulette de faite pour ma part. J'ai inclus ma balise body dans mon script PHP comme cela
    et hop le tour est joué ma fenêtre s'affiche.
    Merci pour ta rapidité Bovino

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

Discussions similaires

  1. Parcourir les elements d'une ligne crée dynamiquement dans un FORM
    Par redabadache3 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/12/2008, 14h30
  2. Réponses: 5
    Dernier message: 08/03/2006, 03h42
  3. [ezPDF] Fonction addImage : insérer une image créée dynamiquement
    Par Huntress dans le forum Bibliothèques et frameworks
    Réponses: 37
    Dernier message: 29/11/2005, 11h20
  4. Centrer un texte sur une image créée dynamiquement
    Par rigolman dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2005, 17h22
  5. Problèmes avec une TForm créée dynamiquement
    Par Pascal Jankowski dans le forum Composants VCL
    Réponses: 5
    Dernier message: 30/03/2005, 11h55

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