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 :

Recuperer des elements dans une Iframe


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Recuperer des elements dans une Iframe
    Hello !!!

    Je souhaiterai recuperer une partie des elements dans une iframe.

    Concretement cette iframe contient le flux rss d'une page et j'aimerai recuperer les element du flux rss en javascript pour les afficher partiellement dans une autre part de la page web .

    Quelqu'un a t il une idee pour faire cela ?

    Merci d'avance !!

    Sourrisseau

  2. #2
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Pour récupérer le contenu d'une "iframe", il faut procéder ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var fenetre = document.getElementById('taFenetre');
    var contenu = "";
     
    try {
        contenu = fenetre.contentDocument.body.innerHTML;
    } catch (e) {
        contenu = fenetre.contentWindow.document.body.innerHTML;
    }

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    hmm l'instruction try/catch(/finally) ne devrait être utilisée que pour la gestion d'exceptions non contrôlées ou lancées par throw.

    ici on n'entre pas dans ce cadre. il s'agit de tester la présence d'une propriété spécifique au navigateur. par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contenu = ([expression_1] || [expression_2]).innerHTML;
    sinon je rappelle qu'il existe une base de connaissances non exhaustive mais qui peut aider méchamment. j'ai nommé "la FAQ"

  4. #4
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Mais ça tout le monde le sait...

    Aller pour te faire plaisir:

    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
     
    var userAgent = window.navigator.userAgent;
    var FIREFOX   = userAgent.match('Firefox')   ? true : false;
    var OPERA     = userAgent.match('Opera')     ? true : false;
    var IE        = userAgent.match('MSIE')      ? true : false;
    var KONQUEROR = userAgent.match('Konqueror') ? true : false;
    var SAFARI    = userAgent.match('Safari')    ? true : false;
     
    var fenetre = document.getElementById('taFenetre');
    var contenu = "";
     
    if (!IE) {
        contenu = fenetre.contentDocument.body.innerHTML;
    } else {
        contenu = fenetre.contentWindow.document.body.innerHTML;
    }

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Merci mais ca marche pas
    Merci bien pour vos réponses mais cela ne morche pas ......Peut etre que je lance le script trop vite et que l'iframe n'est pas entierement chargée ..

    si vous voyez une autre solution ?


  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Message d'erreur Firefox - firebug
    Voici le message de firebug . Ta fonction est appelé 3 secondes apres le chargement de la page pour etre que cela marche ...

    Permission refusée d'obtenir la propriété HTMLDocument.body

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par Sourrisseau Voir le message
    Merci bien pour vos réponses mais cela ne morche pas ......Peut etre que je lance le script trop vite et que l'iframe n'est pas entierement chargée ..

    si vous voyez une autre solution ?

    montre nous le script et on pourra te dire ce qui se passe

    @Seb > il n'est pas nécessaire de tester le navigateur. par exemple sur un gestionnaire d'événement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function (evt)
    {
      var e = window.event || evt;
      alert((e.target || e.srcElement).tagName);
    }
    si window.event existe, alors on utilise window.event (IE)
    sinon on utilise l'événement passé par paramètre (les autres navigateurs)

    si srcElement existe dans notre objet événement alors on prend (IE), sinon on prend target (les autres nav). et on affiche le tagName.

    mais en admettant qu'on veuille connaître exactement quel type de nav est employé, alors oui on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var userAgent = window.navigator.userAgent;
    var FIREFOX   = userAgent.match('Firefox');
    var OPERA     = userAgent.match('Opera');
    var IE        = userAgent.match('MSIE');
    var KONQUEROR = userAgent.match('Konqueror');
    var SAFARI    = userAgent.match('Safari');
    sans [condition] ? true : false
    c'est un test supplémentaire inutile puisque match renvoie déjà un booléen

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    match renvoie déjà un booléen
    Attention BBS, match renvoie un tableau des correspondances trouvées ou null test() renvoie un booléen !
    Ton test fonctionne car la représentation booléenne de null est false et celle d'un tableau est vrai, mais dans ton exemple,
    te renverra toujours false !

  9. #9
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    sans [condition] ? true : false
    c'est un test supplémentaire inutile puisque match renvoie déjà un booléen
    Je l'ai fait à la va vite...
    C'est co-même plus solide à mon sens que ce que tu proposes, mais je connais déjà tout ça, depuis bien longtemps en fait, j'ai déjà fait le tour de ce langage il a déjà quelques années... Et puis c'est chacun ça méthode :p.
    Actuellement la bonne solution serait de tester le module. Avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.implementation.hasFeature('module', 'version');

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    j'ai déjà fait le tour de ce langage il a déjà quelques années...
    Ca me semble un peu présomptueux mais si tu le dis...

  11. #11
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ca me semble un peu présomptueux mais si tu le dis...
    Alors disons simplement que je suis passé à autre chose car j'ai fait le tour de ce qui m'intéresse. Je suis plus entrain aujourd'hui de faire du Ruby qu'autre chose. J'ai pas codé de classe en JS depuis un bout de temps.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1

Discussions similaires

  1. Recuperer des images dans une imagelist
    Par napegadie dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/07/2007, 13h22
  2. Besoin d' Aide pour Redimensionnement des element dans une fenetre
    Par kry55 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 11/12/2006, 13h05
  3. Réponses: 8
    Dernier message: 09/06/2006, 17h01
  4. Des variables dans une iframe.
    Par kult dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2006, 17h29
  5. Inserer des elements dans une map sans rangement ?
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 07/09/2004, 12h09

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