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] [debutant] changer le contenu d un iframe en DOM


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut [DOM] [debutant] changer le contenu d un iframe en DOM
    Bonjour

    Mon probleme est le suivant je veux changer le contenu du body de mon iframe.

    sous IE6 ok ça marche
    sous Firefox 3 ça ne marche PAS !!


    (J'ai supprimer le code inutile.)

    voici mon script javascript contenu dans ma page HTML :
    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
     function changerPage(){ 
      var obj = document.getElementById('idFrame');
     
      /********POUR IE*********/        
           if (obj.document) {
               idFrame.document.body.innerHTML =  "<html><body><h1>Nouvelle  Page</h1></body></html>";
         }
     
     /********POUR FIREFOX*********/
     else if (obj.contentDocument) {
     
     obj.contentWindow.document.body.innerHTML =   "<html><body> <h1>Nouvelle Page</h1></body></html>";
     
     }
    }
    et voici ma page le contenu du body tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body>
    <iframe src="#" name="idFrame" id="idFrame" width="600"></iframe>
    <div id="conteneur">
    </div>
    </body>

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idFrame.document.body.innerHTML =  "<h1>Nouvelle  Page</h1>";
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    salut,

    merci, mais cela ne fonctionne pas snif ...............

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    Et comme ça dans la partie pour Firefox ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj.contentDocument.body.innerHTML =   "<h1>Nouvelle Page</h1>";

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    bonjour,

    http://www.developpez.net/forums/d27...enetre-enfant/
    cf. l'exemple 3 du 1er message. Ensuite si tu utilises innerHTML ce n'est pas du DOM

  6. #6
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    Pour répondre à Pikrass

    non cela ne marche pas dans les erreurs il me met ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur*: Permission refusée d'obtenir la propriété HTMLDocument.body
    Fichier Source*: file:///C:/Documents%20and%20Settings/junior2/Bureau/nouveauMenu/menu.html#
    Ligne*: 114
    pour répondre à auteur: j'essaye de comprendre ....

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    En partant du lien que je t'ai donné, voici comment je procéderai :

    Déjà, plutôt que de créer dynamiquement ta page j'ouvrirai une page ayant un minimum de code HTML.
    Donc soit un fichier html pageFrame.htm :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <html>
    <head>
    <title>iframe</title>
    </head>
    <body>
     
    </body>
    </html>
    c'est ensuite grâce à un script dans la page mère que je modifierai le contenu de cette page.

    Dans la page mère j'incruste le fichier pageFrame.htm :
    Code html : 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
     
    <html>
    <head>
    <title>iframe</title>
    <script type="text/javascript">
    function go()
    {
     window.frames["maFrame"].document.body.innerHTML = "coucou";
    }
    </script>
     
    </head>
    <body>
     
    <iframe id="maFrame" name="maFrame" src="pageFrame.htm"></iframe>
    <br/>
    <input type="button" onclick="go()" value="cliquez ic"/>
     
    </body>
    </html>
    Ici, le fichier à afficher dans la frame s'appelle pageFrame.htm.

    Je pense que cela sera beaucoup plus simple à gérer

  8. #8
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    Cela ne fonctionne que sous IE et pas FF.

    à 1heure du matin j'vais trouvé une autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function changerPage(){ 
      var obj = document.getElementById('idFrame');
     obj.src="moi.html";
     }
    la aussi faut il mieux faire des chargement par fichier ? ou charger le contenu dans l'arbre ?

    Dis moi tu dois être un expert en javascript, tu expliques aussi qu'il faut avoir un minimun une page html. Or pour moi c'est la même chose je transforme mes pages html et j'inclus le code dans une page php, comme ça elles seront dynamiques !

    pourquoi laissé une page en html ?

  9. #9
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Citation Envoyé par junior68 Voir le message
    Cela ne fonctionne que sous IE et pas FF.
    il fonctionne aussi bien sous IE et FF.


    tu expliques aussi qu'il faut avoir un minimun une page html.
    si tu as un minimum de code, l'ajout d'élément est plus facile. Je pense que tu peux facilement inclure des fichiers PHP, mais n'oublie pas que ce que l'utilisateur voit c'est du HTML. Donc regarde si tu n'as pas des balises <body> ou <html> en double.

  10. #10
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    Je vais de nouveau ressayer mais cela m'étonnerait sous quel version de IE es tu sur ?

    moi j'utilise IE 6.

  11. #11
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    J'ai testé sur IE5, IE7. Donc ça doit passer pour IE 6.

    Tu as bien précisé la même valeur pour les attributs id et name ?

Discussions similaires

  1. Changer le contenu d'une iframe depuis une autre
    Par muppetshow dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/02/2011, 00h21
  2. [DOM] changer le contenu d'un noeud
    Par thefaycal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/08/2009, 14h47
  3. Réponses: 11
    Dernier message: 19/03/2009, 10h33
  4. Réponses: 0
    Dernier message: 23/02/2009, 17h42
  5. [Swing] Changer le contenu d'un Container via un menu
    Par TheSeb dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 08/12/2004, 00h07

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