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 :

IE appendChild IFrame


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 35
    Points
    35
    Par défaut IE appendChild IFrame
    Salut,
    voici ce que j'essaye de faire. J'ai une page princiaple contenant 2 iframes. La première iframe contient un formulaire, la seconde juste un DIV. Je souhaite recopier le contenu du formulaire dans la seconde.
    Pour ce faire, je récupère à partir du document le formulaire, je le clone et l'ajoute (appendChild) au second.
    Avec FireFox pas de pb ça fonctionne bien mais IE me dit "Argument non valide" lorsque j'essaye de faire le appendChild sur le div de ma seconde IFrame....
    Je séche complet , donc si quelqu'un à déjà été confronté à cela, je suis preneur.
    Merci


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <html>
    <head>
    <title></title>
    <script language="Javascript" type="text/javascript">
    <!--
     
    IE  = window.ActiveXObject ? true : false;
    MOZ = window.sidebar       ? true : false;
     
        function getIframeDocument(nameIFrame){
            if(MOZ) {
                return document.getElementById(nameIFrame).contentDocument;
            }
            else if(IE) {
                return document.frames(nameIFrame).document;
            }
            return null;
        }
     
        function sendInfo(){
     
            var dest = getIframeDocument('ifrDest').getElementById('contener');
            var src1 = getIframeDocument('ifrSrc1').forms[0];
     
            if(src1){
                for(var i=0;i<src1.childNodes.length;i++){
                    if(src1.childNodes[i] && src1.childNodes[i].cloneNode){
                        var newNode = src1.childNodes[i].cloneNode(true);
                        dest.appendChild(newNode);
                    }
                }
            }
            return false;
        }
     
    //-->
    </script> 
    </head>
    <body>
     
    <iframe id="ifrSrc1" src="iframe1.html" border="1"></iframe>
     
    <input type="button" value="copy" onclick="javascript:sendInfo();"/>
     
    <iframe id="ifrDest" src="form.html" border="1"></iframe>
     
    </body>
    </html>

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    return eval("document."+nameIFrame+".document");

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    A priori cela ne change absolument rien puisqu'il continue de me dire "Argument non valide" sur la ligne appendChild.
    C'est comme si IE refusait d'ajouter un noeud au DOM courant dés lors que ce noeud vient d'un autre DOM.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Salut,
    je sais pas si c'est encore d'actualité mais j'ai eu le même pb, et je confirme que IE ne veut pas créer (et ajouter) un élément dans le DOM d'une page si ce n'est pas la page elle-même qui l'a créé (l'élément).
    Pour résoudre le problème, au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var balise=document.createElement('BALISE');
    iframeDest.document.appendChild(balise);
    qui ne marche pas, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var balise=iframedest.document.createElement('BALISE');
    iframeDest.document.appendChild(balise);

    Je sais pas si ça peut aider...

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par joebarteam88
    C'est comme si IE refusait d'ajouter un noeud au DOM courant dés lors que ce noeud vient d'un autre DOM.
    C'est normal, c'est fait pour. Un noeud est lié de façon inaltérable à un document. Il ne pourra jamais sortir de son document (c'est la norme DOM).

Discussions similaires

  1. session, <iframe> et sécurité
    Par debie1108 dans le forum ASP
    Réponses: 16
    Dernier message: 22/05/2006, 11h57
  2. probleme avec IFRAME
    Par adilou1981 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 24/08/2005, 09h34
  3. Réponses: 7
    Dernier message: 17/12/2004, 18h47
  4. [jsp][struts] paramètre dans un iframe.
    Par ultimax dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 12/10/2004, 09h25
  5. Probleme sur un AppendChild
    Par Toxine77 dans le forum XMLRAD
    Réponses: 3
    Dernier message: 14/03/2003, 18h25

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