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 - Ajouter une frameset dans une framset Compatibilité IE7


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Par défaut DOM - Ajouter une frameset dans une framset Compatibilité IE7
    Bonjour,

    Voiçi mon problème.

    Je possède une page html composé d'un frameset qui possède 2frameset.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Add Frameset</title>
    </head>
        <frameset cols = "105,*">
            <frameset id="FIRSTSET" rows = "74,0,60,*,0">
                    // Mes 5 frames
            </frameset>        
            <frameset id="SECONDSET" rows='70,*,0,0,0'>
                    // Mes 5 frames
            </frameset>        
        </frameset>
    </html>
    Dans l'une de mes frames je souhaite rajouter dynamiquement via le DOM une 3ème frameset via un click.
    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
    var addFrameset = function() {
    var ListNodeFrameSet = top.document.getElementsByTagName('frameset');
     
            if (ListNodeFrameSet.length != 0)
            {          
                var frameSetParent = ListNodeFrameSet[0];
                with (frameSetParent)
                {
                   cols += ",20";
                   setAttribute("frameborder", "0");
                }
     
                var framesetTHIRD = document.createElement('frameset');
                with (framesetTHIRD )
                {
                     id = "framesetTHIRD ";
                     rows = "*";
                }
     
                var maframe = document.createElement('frame');
     
                framesetTHIRD .appendChild(maframe );
     
                frameSetParent.appendChild(framesetTHIRD );
            }        
    }
    Cela fonctionne sur IE8, mais IE7 block sur la partir appenChild du frameset.

    Ma question est : IE7 accepte qu'on puisse rajouter une frameset par le DOM ? Si ou de quelle manière ?

    Merci de faire partager vos connaissances.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Par défaut
    En fait, le problème ne vient pas du fait qu'on ne puisse pas rajouter une frame ou un frameset dans une page html, sous IE7.

    Le problème vient du fait qu'on ne puisse pas le faire a partir d'une frame fille.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    </head>
    <frameset name='masterFrameset'>
            <frameset id="FIRSTSET" >
                    <frame id='frame1'/>
            </frameset>
    </frameset>
    </html>
    Je peux très bien rajouter n'importe quel frameset ou frame a partir de cette page html. Mais je ne peux pas le faire à partir de la frame d'id 'frame1'.

    Apparement c'est une sécurité ou un défaut d'IE7, et ma question est :

    Peux-t-on désactiver cette sécurité sous IE7 afin de faire des appendChild de nimporte quel objet à partir d'une frame, sur un frameset parent ?

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Bonsoir,
    Peux-t-on désactiver cette sécurité sous IE7 afin de faire des appendChild de nimporte quel objet à partir d'une frame, sur un frameset parent ?
    Sûrement que non, mais ce que tu peux faire c'est remonter les fonctions au niveau de la FRAME principale, et rien ne t'empêche de les exécuter à partir de FRAME enfant.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par NoSmoking Voir le message
    Bonsoir,
    Sûrement que non, mais ce que tu peux faire c'est remonter les fonctions au niveau de la FRAME principale, et rien ne t'empêche de les exécuter à partir de FRAME enfant.
    Tu parles de faire remonter les fonctions au niveau de la frame principale. Je suis d'accord avec toi, c'est la solution pour laquelle, j'ai opté. Mais comment faire remonter ces fonctions. Au départ je voulais le faire en rajoutant une balise script ayant pour source mon fichier JS contenant mes fonctions, mais le problème reste le même je peux pas faire de 'appendChild' de n'importe quel objet (objet Script en l'occurrence). J'ai eu la chance d'avoir déjà une balise script dans la frame principale et j'ai juste eu a modifier son source, mais je trouve pas ca très propre, n'y aurait-il pas une meilleur solution ?

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    - Dans le document qui contient les FRAMESET, et entre les balises SRIPT tu places la fonction.
    - Dans la page qui déclenche la fonction tu l'appelles le plus simplement du monde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <button onclick="parent.addFrameset();">Add Frameset</button>

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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