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 :

Lecture Iframe Imbriquée


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut Lecture Iframe Imbriquée
    Bonsoir et bonne année !

    J'ai un souci don je ne trouve pas la cause.

    J'ai une page qui contient une Iframe, qui contient elle même une Iframe.

    Le but est d'accéder au body de la 2ème Iframe.

    Ceci ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    iframeParent= document.getElementById('A3').contentWindow.document.body;
     
    iframeFils=iframeParent.getElementById('A89').contentWindow.document.body;
     
    alert(iframeFils..innerHTML);
    Merci pour votre aide !

  2. #2
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(iframeFils.document.body.innerHTML);
    bien entendu si toutes les pages sont sur le même domaine

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 25
    Points : 32
    Points
    32
    Par défaut
    Bonjour, avec un l'évènement onload ça devrais fonctionner

    a.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <body>
    	<iframe id=b src=b.html></iframe>
    	<script>
    		document.frames("b").onload=function(){
    			alert(document.frames("b").document.frames("c").document.frames("d").document.body.innerHTML);
    		}
    	</script>
    </body>
    b.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body>
    	<iframe id=c src=c.html></iframe>
    </body>
    c.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body>
    	<iframe id=d src=d.html></iframe>
    </body>
    d.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body>
    	<div id=e>e</div>
    </body>
    --
    http://vgt.fr

  4. #4
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Le contenue de la première Iframe ce trouve en local, mais la seconde sur un autre poste qui fait office de serveur. Donc IP différentes...

    J'ai un message accès refusé, ce qui confirme mes craintes.

    Je vais testé en rapatriant le contenue de la 2nd Iframe en local.

    Ok ça marche merci à vous deux, effectivement IE ne permet pas le Cross-Domain quand on demande la lecture d'une Iframe.

  5. #5
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Bonjour, je reviens sur ce problème qui étais résolu, mais uniquement quand je suis en localhost apparemment .

    La j'ai déployé mon site sur un serveur, ma page principale et la page devant être dans l'Iframe sont donc sur la même IP.

    Sauf que depuis mon poste, si j'accède au site qui est sur le serveur, ben j'ai toujours accès refusé...quand il s'agit de lire le contenue de l'iframe.

    J'avoue ne pas tout comprendre la.

    Merci.

  6. #6
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ce n'est pas une question d'IP mais de domaine ...

  7. #7
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Hum, donc si mon site ce trouve sur http://IPSERVEUR/MonSite et que le contenue de l'iframe ce trouve sur http://IPSERVEUR/MaPageIframe

    C'est normal que ça ne marche pas ? Sur le serveur IIS j'ai bien 2 répertoires virtuels indépendant, un pour le site, un autre pour le contenue de l'iframe.

    Dois-je les mettre tous deux dans le même répertoire ?

    Ce qui me donnerait pour le site une adresse comme ceci
    http://IPSERVEUR/DOSSIERCOMMUN/MonSite

    et pour la page Iframe :
    http://IPSERVEUR/DOSSIERCOMMUN/MaPageIframe
    Ou-bien http://IPSERVEUR/DOSSIERCOMMUN/MonSite/MaPageIframe ?

  8. #8
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    cela n'a aucun rapport avec l'endroit à partir du moment ou les deux src sont sur le même domaine
    ce sont deux fenetres distinctes ...

  9. #9
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    La notion de domaine n'est pas limpide pour moi ...

    Je vais me documenter...

    Sinon petite précision, si je me connecte en bureau à distance sur le serveur et que je lance le site sur l'explorateur du serveur ça marche.


    Merci pour le coupe de main

  10. #10
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Et voila j'ai trouvé ^^ grâce à vos petites indications

    En faite le contenue de mon Iframe était chargé depuis un fichier Ini ou dedans je récupère l'adresse de la page à afficher.
    En l'occurrence c'etait http:\\localhost\etc... que j'ai remplacé par http:\\IPDuServeur\.


  11. #11
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Bonjour !

    Je ré-ouvre le sujet pour une question supplémentaire .

    Donc pour simplifier, on parle plus de cross-domain j'ai résolu ce souci, avec

    un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames('A2').document.body.innerHTML
    Seulement seul IE reconnait cette fonction, sous Firefox je trouve pas la syntaxe pour obtenir le body d'une Iframe.
    J'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('A2').contentDocument.body.innerHTML
    Qui me renvoi Null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var Iframeparent=document.getElementsByTagName('A2').innerHTML ;
    var IframeParentBody=Iframeparent.getElementsByTagName('body').innerHTML);
    Me dit qu'Iframeparent n'est pas "Defined"

    Merci pour votre aide

  12. #12
    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


    A2 c'est quoi exactement ? Un name, un id ou une... balise

    Essaye quand même avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['A2'].document.body.innerHTML

  13. #13
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Firebug m'affiche document.frames is not a function

    Et avec document.getElementById['A2'].contentDocument

    Il m'indique document.getElementById.A2 is undefined

    A2 est le Name et l'Id de l'Iframe.

    Si je fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('A2').innerHTML
    J'ai bien l'adresse de destination de l'iframe. (Pas son contenu)
    Pour avoir le Body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('A2').contentDocument.body.innerHTML
    Ne fonctionne pas.

  14. #14
    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
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['A2'].document.body.innerHTML

  15. #15
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Oups
    Mais malheureusement même résultat.

    document.frames is undefined.

    Avec getElementByTagName j'arrive à trouvé ma balise A2.
    Il n'est pas possible d'utiliser cette méthode pour accéder au body ?

  16. #16
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ben si ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementByTagName('iframes')['A12'].document.body
    si le page affichée dans l'iframe est sur ton domaine .

  17. #17
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Désolé je comprend pas tout la .... j'ai testé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementByTagName('iframes')['A2'].document.body
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByTagName('iframes')['A2'].document.body

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByTagName('A2')['body'].innerHTML
    Les trois syntaxes me renvoie "is not a function" sous FireBug.

    Je précise que le Name et l'ID ont pour valeur A2. (Chose que je peux changer si ça pose problème)

    L'iframe est bien dans le même domaine (Chose que tu ma aidé à résoudre précédemment SpaceFrog )

  18. #18
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByTagName('iframes')['A2'].document.body.innerHTML
    ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByTagName('iframes')[0].document.body.innerHTML

  19. #19
    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

  20. #20
    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 640
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    c'est pas un framset ?
    je m'y perds entre l'appel par les propriétés de document ou de winopw ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Affichage d'iframes imbriquées
    Par Danou12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/05/2014, 10h26
  2. iframe imbriquées : récupérer l'iframe du milieu
    Par Invité dans le forum jQuery
    Réponses: 2
    Dernier message: 08/11/2011, 22h31
  3. Créer une playlist avec lecture dans une iframe
    Par bebest93 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 12/06/2009, 14h18
  4. Réponses: 12
    Dernier message: 19/05/2009, 12h51
  5. Lecture de structures imbriquées
    Par StitchP dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/04/2007, 21h05

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