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 :

[DOM] Récupérer le contenu XML affiché dans une Iframe


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut [DOM] Récupérer le contenu XML affiché dans une Iframe
    Bonjour,

    je suis nouveau sur le forum et je sollicite votre aide à propos d'un problème pour lequel je ne trouve pas de solution (ni sur Google, ni grace à l'outil de recherche du forum).

    Mon problème est très simple : je voudrais récupérer l'arbre XML DOM d'un document XML affiché dans une Iframe et ceci en javascript bien sur.

    Voici le XML qui s'affiche dans mon Iframe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
      <message type="PFW_ajax_message" version="3">
        <header>
          <error_code id="error">0</error_code>
        </header>
        <body>
          <XML_content>OK</XML_content>
        </body>
      </message>
    Avec Firefox, Safari, Opéra, pas de problème je fais :

    Code : 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
     
    <html>
      <head> 
        <title>XML dans Iframe</title> 
      </head>	
      <body>
        <iframe id="ifr" src="./xml.php" width="400" height="400"></iframe>
        <br/>
        <input type="button" value="Click me!" onclick="getXML()" />
        <script language="Javascript">
          function getXML()
          {  
            alert(document.getElementById('ifr').contentDocument.firstChild.nodeName);
          }
        </script>
      </body>
    </html>
    Et la pas de problème j'ai bien "message" qui s'affiche dans ma boite de dialogue.

    Avec IE par contre je n'y arrive pas, ni avec "contentWindow.document" ni avec "contentDocument".

    Comment feriez vous ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    as tu essayé avec un document.getElementById('ifr').innerHTML ??

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut
    En fait la spécificité de mon problème tient au fait que le document affiché dans l'iframe et un document XML (Content-Type: text/xml).

    Du coup je ne peux pas récupérer le contenu de mon iFrame grace à innerHTML.

    Quelqun aurait-il une autre idée ?

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    et avec documentElement ??
    sinon pourquoi charger ton xml dans une iframe ?
    créer un document xml en javascript exemple pour ie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var xml = new ActiveXObject("Msxml2.DOMDocument.4.0");
    xml.async = false ;
    xml.load("urldetonfichier.xml");
    var monDocument = xml.documentElement ;

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut
    Alors à la question pourquoi charger le XML dans un Iframe, c'est parce que je fais de l'upload "pseudo Ajax" de fichier dans une iframe cachée.

    Le XML affiché dans l'Iframe contient des informations sur le traitement qui a été réalisé sur le serveur et que je dois réinterpréter en Javascript.

    C'est un cas très particulier pour lequel ton code suivant ne m'est d'aucune utilité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    New ActiveXObject("Msxml2.DOMDocument.4.0");
    xml.async = false ;
    xml.load("urldetonfichier.xml");
    Par contre tu proposes d'utiliser "documentElement". Comment pourrai-je m'y prendre ?

    Merci pour ton aide.

  6. #6
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    et pourquoi n'utilises tu pas de l'ajax ,pour récupérer le document sous forme xml plutot que de le charger dans une iframe ???

    sinon en méthode barbare :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("contenantIframe").getElementsByTagName("iframe")[0].contentDocument.documentElement.innerHTML

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/11/2013, 20h12
  2. Réponses: 4
    Dernier message: 02/07/2012, 09h17
  3. Récupérer le contenu de TextInput dans une Grid
    Par guigui-in-the-place dans le forum Qt Quick
    Réponses: 4
    Dernier message: 12/10/2011, 23h36
  4. [MySQL] Récupérer la valeur s'affichant dans une url
    Par boubout dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/03/2010, 22h32
  5. récupérer ce qui est affiché dans une combobox ?
    Par Sefrou dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/01/2009, 19h37

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