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 :

Cherche ID dans une image SVG


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut Cherche ID dans une image SVG
    Bonjour à tous,

    J'ai une image SVG du type
    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
    <svg width="1000" height="274" id="svg" name="svg" >
    	<rect id="svg_1" x="0" y="0" width="53" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005343166)"><desc>42005343166 </desc><title> []</title></rect>
    	<rect id="svg_2" x="53" y="0" width="6" height="10" style="fill:red" onclick="changer_image_a_partir_SVG(42005343178)"><desc>42005343178 </desc><title> []</title></rect>
    	<rect id="svg_3" x="59" y="0" width="600" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005379150)"><desc>42005379150 </desc><title> []</title></rect>
    	<rect id="svg_4" x="659" y="0" width="13" height="10" style="fill:green" onclick="changer_image_a_partir_SVG(42005379250)"><desc>42005379250</desc><title> [635]</title></rect>
    	<rect id="svg_5" x="672" y="0" width="10" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005379875)"><desc>42005379875 </desc><title> []</title></rect>
    	<rect id="svg_6" x="682" y="0" width="6" height="10" style="fill:red" onclick="changer_image_a_partir_SVG(42005379887)"><desc>42005379887 </desc><title> []</title></rect>
    	<rect id="svg_7" x="688" y="0" width="12" height="10" style="fill:green" onclick="changer_image_a_partir_SVG(42005379986)"><desc>42005379986</desc><title>Voo [1065]</title></rect>
    	<rect id="svg_8" x="700" y="0" width="84" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005384998)"><desc>42005384998 </desc><title> []</title></rect>
    	<rect id="svg_9" x="0" y="11" width="68" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005389098)"><desc>42005389098 </desc><title> []</title></rect>
    	<rect id="svg_10" x="68" y="11" width="12" height="10" style="fill:green" onclick="changer_image_a_partir_SVG(42005389196)"><desc>42005389196</desc><title> [503]</title></rect>
    	<rect id="svg_11" x="80" y="11" width="6" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005389570)"><desc>42005389570 </desc><title> []</title></rect>
    	<rect id="svg_12" x="86" y="11" width="7" height="10" style="fill:red" onclick="changer_image_a_partir_SVG(42005389583)"><desc>42005389583 </desc><title> []</title></rect>
    	<rect id="svg_13" x="93" y="11" width="12" height="10" style="fill:green" onclick="changer_image_a_partir_SVG(42005389681)"><desc>42005389681</desc><title> [505]</title></rect>
    	<rect id="svg_14" x="105" y="11" width="379" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005412417)"><desc>42005412417 </desc><title> []</title></rect>
    	<rect id="svg_15" x="484" y="11" width="12" height="10" style="fill:green" onclick="changer_image_a_partir_SVG(42005412515)"><desc>42005412515</desc><title> [15]</title></rect>
    	<rect id="svg_16" x="496" y="11" width="20" height="10" style="fill:blue" onclick="changer_image_a_partir_SVG(42005413140)"><desc>42005413140</desc><title>Classic 21 [256]</title></rect>
    	<rect id="svg_17" x="516" y="11" width="6" height="10" style="fill:red" onclick="changer_image_a_partir_SVG(42005413152)"><desc>42005413152 </desc><title> []</title></rect>
    	<rect id="svg_18" x="522" y="11" width="12" height="10" style="fill:green" onclick="changer_image_a_partir_SVG(42005413249)"><desc>42005413249</desc><title> [374]</title></rect>
    	<rect id="svg_19" x="534" y="11" width="279" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005429999)"><desc>42005429999 </desc><title> []</title></rect>
    	<rect id="svg_20" x="0" y="22" width="750" height="10" style="fill:black" onclick="changer_image_a_partir_SVG(42005475000)"><desc>42005475000 </desc><title> []</title></rect>
    </svg>

    J'aimerai obtenir l'ID du rect qui contient une "desc" égale à une donnée en particulier.
    Par exemple, la desc 42005429999 doit me donner l'id : svg_19

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    Bonjour,

    J'avance. J'ai un peu modifié le code en ajouter une balise name dans le SVG. Par contre la fonction getElementsByName fonctionne avec les div mais pas avec mon SVG.

    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
    <!DOCTYPE html>
    <html>
    <body>
    <p id="DIV">
    bonjour
    </p>
    <div>
    <div id="svg_1" onclick="changer(1)" name="1">1</div>
    <div id="svg_2" onclick="changer(2)" name="2">2</div>				
    <div id="svg_3" onclick="changer(3)" name="3">3</div>
    </div>
    <svg xmlns="http://www.w3.org/2000/svg">
    <rect id="svg_4" x="0" y="0" width="10" height="10" style="fill:black" onclick="changer(4)" name="4"><desc>4</desc></rect>
    <rect id="svg_5" x="0" y="10" width="10" height="10" style="fill:red" onclick="changer(5)" name="5"><desc>5</desc></rect>
    <rect id="svg_6" x="0" y="20" width="10" height="10" style="fill:green" onclick="changer(6)" name="6"><desc>6</desc></rect>
    </svg>
     
    <script>
    function changer(test) {
    var elements = document.getElementsByName(test);
    var id=elements[0].id;
    document.getElementById("DIV").innerHTML = id;
    }
    </script>
     
    </body>
    </html>

    Lorsque je clique sur 1,2 ou 3 => pas de soucis, cela fonctionne.
    Par contre, lorsque je clique sur le svg => rien ne se passe ... sous Firefox. Par contre sous Chrome, le résultat est bon

    Une idée?

    Merci

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    je n'ai pas l'habitude d'utiliser les "name" donc j'ai modifié votre test mais ensuite je ne sais pas si ça correspond au test que vous vouliez faire :

    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
    <p id="DIV">
    bonjour
    </p>
    <div>
    <div id="svg_1" onclick="changer(1)" name="uu1">1</div>
    <div id="svg_2" onclick="changer(2)" name="uu2">2</div>				
    <div id="svg_3" onclick="changer(3)" name="uu3">3</div>
    </div>
    <svg xmlns="http://www.w3.org/2000/svg">
    <rect id="svg_4" x="0" y="0" width="10" height="10" style="fill:black" onclick="changer(4)" name="uu4"><desc>4</desc></rect>
    <rect id="svg_5" x="0" y="10" width="10" height="10" style="fill:red" onclick="changer(5)" name="uu5"><desc>5</desc></rect>
    <rect id="svg_6" x="0" y="20" width="10" height="10" style="fill:green" onclick="changer(6)" name="uu6"><desc>6</desc></rect>
    </svg>
     
    <script>
     
    function changer(test) {
    let id = "svg_" + test;
    var elements = document.getElementById(id);
    document.getElementById("DIV").innerHTML = id;
    }
    </script>

    dans votre 1er message vous disiez "Par exemple, la desc 42005429999 doit me donner l'id : svg_19". d'où vient cette donnée "42005429999" dans cette demande ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 211
    Par défaut
    Citation Envoyé par mathieu Voir le message

    dans votre 1er message vous disiez "Par exemple, la desc 42005429999 doit me donner l'id : svg_19". d'où vient cette donnée "42005429999" dans cette demande ?
    Effectivement j'ai simplifier la desc afin de rendre le code plus lisible mais il n'y a pas de correspondance entre l'ID et la desc/name.

    Je pense qu'il y a un bug au niveau de Firefox car mon code fonctionne avec Chrome

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    J'ai l'impression qu'on est dans un problème XY. Qu'est ce que tu tentes de réaliser (dans un sens plus large)? Que dois produire le click sur un rectangle? Pourquoi as-tu besoin de récupérer l'id du rectangle sur lequel tu viens de cliquer?

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

Discussions similaires

  1. Probleme d'importation d'une image SVG dans une ResourceDictionary
    Par l.mnu dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 15/03/2022, 14h35
  2. Réponses: 0
    Dernier message: 12/10/2014, 20h17
  3. Script pour décaler image dans une zone SVG
    Par Pitus dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 16/05/2011, 19h13
  4. Ajout d'une image SVG dans le code d'une page
    Par Mobius dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2009, 16h37
  5. [c#] [SVG] affichage d'une image svg dans un form (pocket pc)
    Par DontNet dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/10/2007, 15h19

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