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ération contenu <div>


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut Récupération contenu <div>
    Bonjour,

    j'ai un fichier html qui se sert d'un fichier xls pour mettre en forme et récupérer des données xml comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <body onload="transform(loadXML(nom), loadXML('index.xsl'), 'transform')">
    J'aimerai maintenant récupérer le contenu de cet div, j'essaye donc ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script type="text/javascript"> 
    var elt = document.getElementById("transform");
    alert(elt.innerHTML);
    </script>
    Le problème c'est que cela ne me retourne rien, j'en conclus donc que la div n'a pas eu le temps de se charger ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut
    j'utilise une solution de secours qui consiste à lancer ma fonction par le OnClick d'un bouton. Le résultat est bon :

    Nom : Capturer.JPG
Affichages : 127
Taille : 26,1 Ko

    J'aimerai maintenant ne récupérer que ce qu'il se trouve à l'intérieur des balises <VAR1> et <VAR2>. Existe t-il une fonction js qui le permet ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Citation Envoyé par Kazumi Voir le message
    j'en conclus donc que la div n'a pas eu le temps de se charger ?
    Exactement. Le chargement de tes fichiers est une opération asynchrone, ton script va s'exécuter avant la fin des requêtes. Pour exécuter ton code au moment où la requête est terminée, il faut te brancher à un callback ou à un évènement. Ta fonction loadXML en propose très certainement un.

    Pour récupérer le bout de HTML que tu veux, utilise les mêmes APIs JavaScript que celles dont tu te sers pour sélectionner ta <div> : querySelector, children...
    Attention toutefois, je pense que tu essaies de manipuler du XML comme du HTML, or var1 et var2 ne sont pas des balises HTML valides. Es-tu sûr d'avoir besoin d'ajouter ce code au document ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    il faut te brancher à un callback ou à un évènement. Ta fonction loadXML en propose très certainement un.
    Par le biais d'un setTimeout ? Car si c'est le cas, toutes mes tentatives d'utilisation d'une fonction avec un setTimeout se sont soldés par un échec.

    Citation Envoyé par SylvainPV Voir le message
    Attention toutefois, je pense que tu essaies de manipuler du XML comme du HTML, or var1 et var2 ne sont pas des balises HTML valides. Es-tu sûr d'avoir besoin d'ajouter ce code au document ?
    J'identifie le contenue que je souhaite récupérer dans le méandre d'information que je récupère pour ensuite pouvoir le traiter, j'avais dans la tête d'utiliser une fonction js ressemblant au split() me permettant de ne récupérer que les éléments entre les balises souhaitées.

    P.S. Si je pouvais éviter le jQuery, les clients aiment pas trop

  5. #5
    Membre averti
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Par défaut
    Salut,
    Pour récupérer un morceau de cette longue chaine, il n'y a pas une fonction javascript qui fait ça il me semble ?
    "Extraire une sous-chaine d'une chaine", mais il faut lui indiquer l'index de la sous-chaine dans la chaine.
    Pour obtenir cet index il faut utiliser une autre fonction de javascript qui te fournit cet index si tu lui donne en parametre le nom de la sous-chaine, par exemple tu peux lui donner le nom <var1> et ainsi calculer l'index de la sous-chaine que tu cherches, ensuite donner cet index à la fonction d'extraction de sous-chaine.

    Peut-être que je suis à coté de la plaque dans ma réponse ?

    EDIT : Ah je vois qu'il y a beaucoup de var1 donc ça va être dur^^

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut
    Ce que je veux, c'est récupérer tous les éléments contenus entre les balises <var1> ... </var> puis de même pour <var2> ... </var2>
    Le reste du texte, je ne m'en occupe pas.

  7. #7
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Citation Envoyé par Kazumi Voir le message
    Par le biais d'un setTimeout ? Car si c'est le cas, toutes mes tentatives d'utilisation d'une fonction avec un setTimeout se sont soldés par un échec.
    un timeout sert à attendre un certain délai, or tu n'as aucune idée du temps que va prendre ta requête. Je parle d'une fonction callback telle que xmlHttpRequest.onload :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function callback(){
       alert("Le serveur a répondu : "+this.responseText);
    }
     
    var req = new XMLHttpRequest();
    req.onload = callback;
    req.open("get", "tonfichier.xml", true);
    req.send();

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 120
    Par défaut
    Le bout de code que tu m'as donné va donc attendre que mon fichier XML soit chargé ?

    Et puis-je mettre une variable pour le nom du fichier xml ?

    merci d'avance

  9. #9
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Oui, comme son nom l'indique, le callback onload sera appelé quand la réponse à la requête sera chargée.

    Ta fonction loadXML doit certainement te permettre de te brancher sur ce onload d'une façon ou d'une autre.

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

Discussions similaires

  1. Récupération contenu d'une page html
    Par babass77 dans le forum Général Java
    Réponses: 1
    Dernier message: 19/06/2008, 01h06
  2. récupération contenu de cellule
    Par Nico13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/05/2008, 15h22
  3. [XSLT] Problème récupération contenu élément !
    Par Mygush dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/02/2008, 14h08
  4. Récupération d'un div précis -> curl
    Par masseur dans le forum Langage
    Réponses: 1
    Dernier message: 28/01/2008, 21h32
  5. Modifier contenu balise div
    Par moutey dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/11/2007, 12h42

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