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 :

Affichage de div générée par createElement() + AppendChild().


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 63
    Points : 50
    Points
    50
    Par défaut Affichage de div générée par createElement() + AppendChild().
    Bonjour à tous.

    J'ai écrit un programme qui, lorsqu'un évènement se produit, génère une nouvelle div (createElement() puis appendChild() ). Il s'agit ici d'une div SVG.
    Lorsque je l’exécute, l'évènement est reconnu. Après vérification dans l'inspecteur, la div est correctement générée et placée, mais elle n'est pas affichée à l'écran.
    J'ai vérifié la validité des attributs de la div générée en la créant directement dans mon html, et elle s'affiche correctement.

    Il s'agit d'une application client qui communique avec serveur node.js, l'évènement mentionné plus haut est tout simplement la réception d'un message en provenance du serveur.

    J'ai vraiment besoin que cette div s'affiche dès qu'elle est générée, sinon mon programme n'a pas vraiment d'intérêt ^^.

    Merci pour votre aide !

    Code html : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html>
    <head>
        <meta charset="UTF-8">
        <title>Target</title>
        <link rel="stylesheet" href="client.css">
     
    </head>
    <html>
    <body>
        <div class="pointsList"></div>
        <div class="score"></div>
        <svg xmlns="http://www.w3.org/2000/svg"
            version="1.1"
            width="100%"
            height="10%"
            viewBox="0 0 684 648" id="target">
     
        </svg> 
     
        <script>
            var target = document.getElementById("target");
     
            var ws;
            function init() {
                if (ws) {
                    ws.onerror = ws.onopen = ws.onclose = null;
                    ws.close();
                }
     
                ws = new WebSocket('ws://localhost:1234');
                ws.onopen = () => {
                    console.log('Connection established !');
                }
                
                ws.onmessage = function receive({data}) {
                    console.log(JSON.parse(data).x);
                    console.log(JSON.parse(data).y);
                    
                    
                    var impact = document.createElement("circle");
                    impact.setAttribute("fill","lime");
                    impact.setAttribute("cx",(50+ 2*(JSON.parse(data).x)) + "%");
                    impact.setAttribute("cy",(25+ 2*(JSON.parse(data).y)) + "%");
                    impact.setAttribute("r","1.9%");
                    impact.setAttribute("stroke","limegreen");
                    impact.setAttribute("stroke-width","0.5");
                    impact.setAttribute("class","impact");
     
                    target.appendChild(impact);
                }
     
                ws.onclose = function() {
                    ws = null;
                }
            }
            init();
        </script>
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 174
    Points
    17 174
    Par défaut
    Salut

    La balise <html> ne devrait elle pas être avant le <head> ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 63
    Points : 50
    Points
    50
    Par défaut
    Effectivement, j'ai toujours cru que ça se faisait comme ça. Je sais pas d'où j'ai sorti ça ...

    En revanche, cela ne résout pas mon souci ...

  4. #4
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 713
    Points : 1 597
    Points
    1 597
    Par défaut
    jour

    essai avec la syntaxe NS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var svgNS = "http://www.w3.org/2000/svg";
     
    var impact = document.createElementNS(svgNS,"circle");
    Plus vite encore plus vite toujours plus vite.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 63
    Points : 50
    Points
    50
    Par défaut
    Cela fonctionne ! Merci beaucoup !

    Je vais me renseigner un peu plus sur cette syntaxe.

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

Discussions similaires

  1. Afficher des div générées par du code
    Par Erukay dans le forum jQuery
    Réponses: 6
    Dernier message: 12/04/2013, 21h29
  2. Affichage d'un Div (menu) par dessus un autre div(contenu)
    Par guigui69 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 09/01/2009, 20h28
  3. [AJAX] Affichage de requête PHP dans un div créé par Ajax
    Par will89 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2007, 19h00
  4. Affichage des images générées par une application sous tomcat
    Par don'de dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 09/01/2007, 11h24
  5. [ImageMagick] Affichage d'images générées par PHP
    Par lothar59 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 17/09/2006, 17h04

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