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 :

Vider une frame de son contenu


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut Vider une frame de son contenu
    Bonjour,

    J'ai une page principale composée de 2 frames (gauche & droite).

    Dans la frame de gauche j' ai un treeview. Lors d'un click sur un élément du treeview, j'appel un CGI qui génère le contenu de la FRAME de droite "CPMAIN".
    Cette partie fonctionne.

    Cependant ma FRAME "CPMAIN" n'est jamais effacée, du coup les pages générées s'empilent les à la suite des autres.

    Comment faire pour supprimer le contenu existant dans la FRAME "CPMAIN" avant d'afficher la page générée dans cette FRAME ?

    Merci

    Pour info voici la fonction qui appel le CGI et qui écrit la réponse dans la frame de droite (CPMAIN)
    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
     
    function sendPost(branch) {                              
      var obj_name = branch.getId();                         
      var target_url="/cgi-bin/CreView";                     
      var xhr_object = null;                                 
      if(window.XMLHttpRequest)                              
         xhr_object = new XMLHttpRequest();                  
      else if(window.ActiveXObject)                    
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
      else {          
         alert("Your browser does not support XMLHttpRequest");
         return;                                             
      }
      xhr_object.open("POST", target_url, true);   
      xhr_object.setRequestHeader('Content-Type','text/html');       
      xhr_object.send(obj_name);                                     
      xhr_object.onreadystatechange = function() {   
       if(xhr_object.readyState == 4) {           
          var obj_return = xhr_object.responseText;                
          parent.frames['CPMAIN'].document.write(obj_return);      
       }
    }
    S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    étonnante utilisation des frames que tu nous décrits là

    Une frame est censée afficher une page existante, via son URL

    Pourquoi n'utilises-tu pas le fonctionnement classique des frames ?
    Tu n'aurais pas ce problème ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut
    Je débute complétement en html,css et javascript.
    Ayant un projet à réaliser (sans aucune formation), je cherche sur le net les informations dont j'ai besoin au fur et à mesure des problèmes que je rencontre...

    Avant d'utiliser les frames j'ai essayé avec les "Div" pour gérer la mise en page de ma fenetre principale. mais dès que je testais des résolutions différentes de l'écran, ma mise en page était en vrac. Après de plusieurs tests non concluant, j'ai utilisé des frames pour la facilité de mise en oeuvre.

    Sinon concernant mon problème, j'ai trouvé la solution.
    Avant d'écrire la nouvelle page html, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    parent.frames['CPMAIN'].document.open(); //vide la frame
    parent.frames['CPMAIN'].document.write(obj_return);  //afiche la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Pourquoi n'utilises-tu pas le fonctionnement classique des frames ?
    Pourquoi l'utilisation de FRAME n'est-elle pas correcte dans mon cas ?
    Car ma fonction JavaScript demande bien une page (générée dynamiquement par un CGI écrit en C) .
    Quelles sont les alternatives possibles ?


    Sinon je suis preneur de tout lien vers de très bonnes explications sur la mise en page de div en CSS.
    S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SPACHFR Voir le message
    Quelles sont les alternatives possibles ?
    Le fonctionnement "classique" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe name="CPMAIN" src="contenu_initial.html"></iframe>
    Pour en changer le contenu en JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    top.document.frames['CPMAN'].src="/cgi-bin/CreView";
    EDIT : pareil qu'il s'agisse de frame ou d'iframe ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    top.document.frames['CPMAN'].src="about:blank";
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    top.document.frames['CPMAN'].src="about:blank";
    Il s'agissait d'une purge du contenu dans le fonctionnement existant (à base de ton document.write() préféré), pas d'afficher une page vierge

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut
    MERCI pour toutes ces informations !!!!

    J'ai bien vue les IFRAME mais j'ai pas trouvé de réel différence avec une FRAME (probablement dû à mon statu de débutant....)
    S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SPACHFR Voir le message
    J'ai bien vue les IFRAME mais j'ai pas trouvé de réel différence avec une FRAME (probablement dû à mon statu de débutant....)
    C'est surtout qu'il y en a peu (en terme de gestion) : une frame doit être définie dans un frameset, alors qu'une iframe est un élément de la page positionné librement (comme un div) ...
    Mais les syntaxes JS sont les mêmes pour les 2

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. deplacer un frame avec son contenu (VB6)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/02/2007, 09h56
  2. [GTK#]Comment afficher une frame et son contenu?
    Par mick2d dans le forum GTK+
    Réponses: 3
    Dernier message: 31/03/2006, 09h35
  3. Redimensionner une Frame et son contenu ?!?
    Par talkhor dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/01/2006, 12h28
  4. [procedure stockee] - Dupliquer une table et son contenu
    Par captusite dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2006, 13h30
  5. [VB5]Connaitre l'index d'une liste via son contenu
    Par guda dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/10/2005, 15h08

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