Ouvrir le contenu d'une frame dans une nouvelle fenetre à partir d'une autre fra

sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 - 17 sept. 2007 à 18:53
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 - 19 sept. 2007 à 14:16
Bonjour,
comme le titre le laisse suggérer, je cherche à ouvrir le contenu d'une frame dans une nouvelle fenêtre, mais tout cela à partir d'une autre frame, sans modifier le contenu des 2 frames.
Explications:
=> le site que je tente de réaliser contient 2 frames à gauche et à droite.
     De plus, j'ai en partie construit la deuxième à partir de celle de gauche (j'ai rempli un tableau de valeur, NDLR) grace aux fonctions window.open(); document.write(bla bla);etc.. window.close().

Maintenant, je voudrais afficher cette frame de droite en plein écran, i.e: créer une nouvelle fenêtre avec le contenu de cette frame, pour ainsi avoir une sorte d'aperçu du tableau rempli.

Or, je n'y arrive pas, mes compétences en javascript étant pour l'instant limitées (mais je m'améliore de jours en jours, si si c vrai !!)

J'avais pensé à faire cela
=>le clic sur un bouton placé sur la frame de gauche générait la fonction suivante:
            function voir(){
                   v = window.open("","aperçu");
                   v.write(parent.frame_droite.innerHTML);
             }
Mais si la fenêtre s'ouvre bien, elle est d'une part vide, et d'autre part une erreur survient
                  => cet objet ne gère pas cette propriété ou cette méthode (la ligne fautive indiquait semblant être celle avec le innerHTML).

Bref, j'éspère que quelqu'uns pourra m'aider.
En attendant votre aide,
merci d'avance.

Signé Sagat

4 réponses

sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
18 sept. 2007 à 19:06
  Re bonjour, je remercie tous ceux qui ont peut être essayé de m'aider.
N'obtenant pas de réponse, j'ai tenté par le système D d'arriver à mes fins. Et j'ai un peu avancé dans ma tentaive de créer un effet d'aperçu.
   En effet, j'ai tenté tout simplement,(même si je me doute qu'il y a plus simple et plus rapide) de récréer le contenu de la frame de droite dans une nouvelle fenêtre.


Pour cela, j'ai utilisé la même méthode, à savoir :
window.open(); document.write(bla bla);etc.. window.close(). en enlevant le window, ce qui donne:

open(); document.write(bla bla);etc; close().  (je ne sais pas si nécessaire, mais bon..)

entre le open() et le close() j'ai pratiquement réécrit la même chose sauf que j'ai cette fois-ci bien écrit "document.write
(bla bla);" alors que précedemment j'avait écrit
"window.parent.frame_droite.document.write
(bla bla);"  (chose que j'avait oublié de préciser, dsl)
Et je pense que c là que se situe le pb car mon aperçu fonctionne mais se charge dans la frame qui l'appelle à savoir celle de gauche (ce qui est logique après tout). Et la fenêtre qui apparait reste vide.

Bref, je ne sais pas quoi écrire pour que cette aperçu se charge dans la nouvelle fenêtre en laissant donc les 2 frames tel qu'elles sont

J'espère que cette fois-ci quelqu'un pourra m'aider.
Mais je continue biensûr à me creuser la tête.
Merci d'avance.

Signé Sagat
0
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
18 sept. 2007 à 19:48
C'est encore moi!!
Mais je dois vous annoncer ma joie d'avoir résolu tout seul comme un grand mon pb.

Voici donc comment je m'y suis pris:
le bouton "aperçu" situé sur la frame de gauche fait s'executer la fonction suivante:

function voir(){
   page=window.open("","","");
   {
   page.document.write("<HTML>" );
   page.document.write("bla bla");
   page.document.write("</HTML>"):
   }
}

Cela fonctionne mais surcharge à mon avis mon code, car en gros je réecrit 2 fois la même chose (lors de la création de la frame de droite puis pour l'aperçu).

Je suis quasiment sûr qu'il doit exister une méthode permettant d'obtenir en quelque sorte le "code source" de la frame de droite pour ainsi ne pas tout se retaper.
C'est pourquoi, j'éspère bien que quelqu'un pourra éventuellement me renseigner.

Le système D a de beaux jours devant lui...
A la prochaine...

Signé Sagat
0
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
19 sept. 2007 à 13:56
A croire que personne n'était interessé par mon pb...


Bref, j'ai encore amélioré tout cela:


=> nouvelle fonction voir:


function voir(){
   page=window.open("","","");
   {  page.document.write(window.parent.frame_droite.document);

   }
}

Et du coup ma fonction ne nécessite qu'une seule ligne, et je ne suis pas obligé de réecrire tout le code de la frame de droite!!

Système D amélioré....

Signé Sagat
0
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
19 sept. 2007 à 14:16
Oublier le post précédent, je me suis enflammé trop vite.

Ne marche pas alors qu'il me semblait bien l'avoir fait fonctionné, mais non...

Signé Sagat
0
Rejoignez-nous