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

AJAX Discussion :

[AJAX] Parser la réponse HTML d'une requête XHR


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut [AJAX] Parser la réponse HTML d'une requête XHR
    Salut,

    Désolé si c'est une question de noob, j'ai un niveau proche de zéro en Javascript et j'ai rien trouvé de probant sur Google et dans les tutos...

    Je m'essaie au développement d'extensions pour Google Chrome, et je voudrais extraire des infos d'une page récupérée grâce à un XmlHttpRequest. Je récupère bien le HTML de la page, mais je n'arrive pas à accéder à son DOM.

    J'ai bien testé avec DOMParser :

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var parser = new DOMParser();
    var doc = parser.parseFromString(req.responseText, "text/xml");
    Mais pas moyen d'accéder au contenu... doc.getElementById ne renvoie pas l'élément que je cherche, alors que je sais qu'il est bien là ! et même doc.getElementsByTagName("body") me renvoie une liste vide...

    Une petite idée de ce qu'il faut faire ?

  2. #2
    Expert éminent

    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
    Par défaut
    Salut,
    la page que te retourne Ajax, ce n'est visiblement pas pour l'afficher ...

    Pourquoi ne pas retourner uniquement les infos que tu cherches à extraire (avec JSON, par exemple si infos structurées) ?

    EDIT : Visiblement, le DOMparser n'aime pas la soupe HTML ?

    A+

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Pourquoi ne pas retourner uniquement les infos que tu cherches à extraire (avec JSON, par exemple si infos structurées) ?
    Parce que c'est pas une page à moi, c'est une page d'un site existant dont je veux extraire une info...

    Citation Envoyé par E.Bzz Voir le message
    EDIT : Visiblement, le DOMparser n'aime pas la soupe HTML ?
    non
    j'ai essayé de mettre "text/html" à la place de "text/xml", mais ça me renvoie null...

  4. #4
    Expert éminent

    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
    Par défaut
    Citation Envoyé par tomlev Voir le message
    j'ai essayé de mettre "text/html" à la place de "text/xml", mais ça me renvoie null...
    Oui, car comme précisé dans le lien, ce n'est visiblement pas avec ce parser là que tu y arriveras (il ne sait pas faire) ...

    Par contre, si la page n'est pas à toi (en fait : si elle n'est pas dans le même domaine que la page appelante), il devrait y avoir des problèmes de sécurité lors de l'accès ...
    Tu as pu le gérer, ou le problème ne se posait pas ?

    Parce que sinon, quelque soit le parseur, ça va bloquer

    A+

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Par contre, si la page n'est pas à toi (en fait : si elle n'est pas dans le même domaine que la page appelante), il devrait y avoir des problèmes de sécurité lors de l'accès ...
    Tu as pu le gérer, ou le problème ne se posait pas ?
    Ben je récupère bien la source HTML...
    En fait je pense que c'est parce que dans le manifeste de l'extension chrome, j'ai ajouté une permission pour le site en question

  6. #6
    Expert éminent

    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
    Par défaut
    D'après ce post là, ça semble assez mal barré

    Dans la mesure où tu récupères bien ton code HTML, mais sous forme de chaîne de caractères (la soupe HTML de Mozilla ), tu n'as pas moyen de t'en sortir en la traitement comme telle (une extraction de chaîne) ?

    C'est sûr que c'est (infiniment) moins propre qu'un accès DOM, mais à défaut de grives ...

    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2015, 17h52
  2. [AJAX] positionnement dans la page suite à une requête Ajax
    Par Ascella dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/12/2008, 19h10
  3. [AJAX] Ecriture de balise html dans une BDD avc AJAX
    Par togzz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/11/2008, 10h59
  4. [AJAX] Modifier les header (PHP) avec une requête XMLHttpRequest?
    Par Prosis dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/09/2008, 00h34
  5. [AJAX] Déplacer des objets HTML sur une page web
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2007, 12h47

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