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 :

Récupérer l'objet parent du contenu d'une balise object.


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 159
    Points : 91
    Points
    91
    Par défaut Récupérer l'objet parent du contenu d'une balise object.
    Bonjour à tous,

    Je vais peut-être mal formuler ma pensée au départ car je cherche à faire quelque chose d'un peu spécial.

    Dans une page web, j'ai une balise object dans ma page qui contient un graph SVG avec du javascript dans le SVG.

    Coté HTML ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <object id="svgObj" type="image/svg+xml" data="graph.svg" width="640" height="480"></object>
    Coté javascript du SVG, je peux accèder à la page html dans laquelle est contenue la balise object en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var htmlDocument = window.parent.document;
    Ce que j'aimerais faire, c'est récupérer l'objet correspondant à ma balise object qui inclus le SVG. Bien sur je pourrais faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var baliseObject = htmlDocument.getElementById("svgObj");
    Mais le problème, c'est que j'aimerais ne pas avoir à connaitre à l'avance l'identifiant de l'objet appellant.

    Y'a-t-il donc un moyen quelconque pour récupérer directement l'objet dans lequel est contenu mon SVG (comme on a récupéré le document HTML) ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Bonjour,

    Que donne window.parent ?

    devyan


    devYan.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 159
    Points : 91
    Points
    91
    Par défaut
    Un alert me dit :
    Vraisemblablement, il s'agit de la fenêtre entière du document html.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Dans ce cas, je ne vois pas d'autre solution que de passer par window.parent.document.getElementById("id_de_ta_balise_object")


    devYan.

  5. #5
    Expert éminent sénior

    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
    Points : 36 602
    Points
    36 602
    Par défaut
    Bonjour,
    Citation Envoyé par Difré91 Voir le message
    Mais le problème, c'est que j'aimerais ne pas avoir à connaitre à l'avance l'identifiant de l'objet appellant.

    Y'a-t-il donc un moyen quelconque pour récupérer directement l'objet dans lequel est contenu mon SVG
    si le JavaScript est "dans" le SVG, logiquement ça devrait être this représentant l'objet courant, en l'occurence le SVG ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 159
    Points : 91
    Points
    91
    Par défaut
    En fait, le problème, c'est que le document SVG possède son propre DOM, donc cette syntaxe ne marche pas.

    Je continue mes tests, et je reviens poster quelquechose si je trouve une solution !

  7. #7
    Expert éminent sénior

    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
    Points : 36 602
    Points
    36 602
    Par défaut
    Citation Envoyé par Difré91 Voir le message
    Mais le problème, c'est que j'aimerais ne pas avoir à connaitre à l'avance l'identifiant de l'objet appellant.
    Dans ce cas (si tu n'as pas d'autres <object> dans la page), peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var baliseObject = htmlDocument.getElementsByTagName("object")[0];


    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 159
    Points : 91
    Points
    91
    Par défaut
    On en arrive au pourquoi du comment !

    Je veux faire comme ça pour pouvoir inclure plusieurs objets dans la pages et que chaque objet soit reconnu individuellement.

    Une solution serait de passer l'id en paramêtre au fichier.js, mais cela me paraît un peu compliqué et je préfererais trouver une méthode plus simple et solide.

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Tu pourrais utiliser le nom du fichier comme id


    devYan.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 159
    Points : 91
    Points
    91
    Par défaut
    Si, je pourrais.

    Mais dans ce cas, comment récupérer le nom de fichier en javascript. Cela me parait impossible.

    Sinon, j'ai uen autre piste de recherche.

    Mon document svg est structuré comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <svg width="792pt" height="454pt"
     viewBox="0.00 0.00 453.98 792.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
       <dautresbalises></dautresbalises>
    </svg>
    Donc, si je pouvais récupérer l'élement svg, je pourrais y stocker l'id.

    Comment donc, avec des accesseurs DOM récupérer l'element le plus haut dans la hierarchie ?

    Edit :
    J'ai trouvé en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.document.getElementsByTagName("svg")[0];
    Re-edit : s'il y a un moyen de récupérer la balise englobante d'une meilleure façon, je suis toujours preneur ! N'hésitez pas à déterrer le thread !

  11. #11
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2002
    Messages : 88
    Points : 166
    Points
    166
    Par défaut
    Tu peux utiliser : document.documentElement
    M.
    Développeur confirmé C++, Java, Python, JS.

Discussions similaires

  1. modifier le contenu d'une balise object
    Par ygeronimi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/10/2013, 08h22
  2. dialogue ente une page et le contenu d'une balise object
    Par ryan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/12/2009, 15h01
  3. Réponses: 12
    Dernier message: 20/09/2006, 09h31
  4. [Tableaux] Récupérer le contenu d'une balise HTML
    Par StarNab dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2006, 12h38
  5. [DOM] Récupérer le contenu d'une balise donnée
    Par mimi31110 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 26/06/2006, 23h46

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