Impression dans un frameset

zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008 - 22 juil. 2008 à 10:49
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 23 juil. 2008 à 08:19
Bonjour,

J'ai un problème d'impression. J'aimerais imprimer un frame seulement de ma page. J'ai vu que ce problème avait déjà été traité plusieurs fois dans le forum mais malgré avoir essayé depuis quelques heures mtn ca ne marche toujours pas.

J'ai un frameset qui  de manière simplifié ressemble à ça :

<FRAMESET  name=FSMain>
   <FRAMESET  name=FSMenu >
      <FRAME  name=Menu  src="menu.htm">
      <FRAME id=MenuCode name=MenuCode src="menucode.htm" >
   </FRAMESET>
   <FRAME id=Main name=Main src="main.htm" >
</FRAMESET>

J'ai un bouton imprimer dans ma frame MenuCode . J'aimerais qu'il n'imprime que la frame Main.
Voila mon code dans le body de ma frame MenuCode:

      

<script type="text/javascript">
function printframe() {
   parent.Main.focus();
   parent.Main.print();
}
</script>

Merci pour votre aide et bonne journée...

16 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 juil. 2008 à 12:39
Bonjour,

je ne pensais même pas que cette syntaxe fonctionnait !
window.print() c'est tout ce que je connais
ça marche comme le Ctrl+P, rien d'autres

si tu ne veux imprimer que certaines choses, envoie ce que tu veux
vers un pop-up et fais-y le print
ou inhibe les parties à ne pas imprimer en css.

@media print
            {.InEo    {    visibility:hidden;    }    /* ne pas imprimer, visible à l'écran */
            }
@media screen
            {.InEo    {    visibility:visible;    }   
            }

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
22 juil. 2008 à 13:07
Salut,

bul++

Ou sinon au lieu de cacher les partie (elle prennent toujours de la place) tu peus carément les enlever et les remettre...

@media print
            {.InEo    {    display:none;    }    /* ne pas imprimer, visible à l'écran */
            }
@media screen
            {.InEo    {    display:block;    }   
            }

@bultez : désolé pour le copier/collé (j'étais assez pressé a cause de me parent qui me foute la pression)

a++

PS : si il y avait un copyright ou une license quelquonque, adresse toi a mon avocat, lol

Si la réponse vous convient, pensez : Réponse acceptée !
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 13:12
Merci pour vos réponses. J'ai effectivement un Css pour l'impression. Ceci fonctionne très bien.
Mon problème est plutôt l'impression de la frame Main ( sans passer par une pop-up)

Le code marche...enfin la fenetre d'impression s'ouvre mais le ciblage est mauvais je pense car il imprime les 3 frames. Pourtant il me semble avoir tout essayé ...

parent.parent.Main
top.Main

etc...

Une idée ? Merci et bonne après midi
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 juil. 2008 à 13:40
je pensais avoir été clair... mais j'ai aussi souvent
du mal à me comprendre moi-même, alors...
window.print() imprime toute la page ( sauf css adpaté ! )
je pense ( mais peut-être me trompe-je ) que rien d'autres n'est possible.

@nico :
Tout ce qui est dans mes messages : lettres, chiffres, caractères de
ponctuation, signes typographiques... est entièrement libre de droit.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
22 juil. 2008 à 13:47
Ok, merci bultez, lol

Pour le problème, je ne vois pas de solution a part peut être une rediection vers une page qui ne contient que le contenue désiré...

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 14:08
Ah d'accord... J'étais sûr d'avoir vu passer sur Google 2-3 threads sur des forums traitant de la possibilité de cibler l'impression sur une frame en particulier mais j'avais pas réussi à adapter ca pour mon site.

Si je vous ai bien compris il me suffit d'utiliser du CSS dans mes 2 frames que je ne souhaite pas imprimer, c'est à dire MenuCode.htm et Menu.htm ?
Je ne risque pas ensuite de me retrouver avec 2 pages vides qui sortent quand même de l'imprimante ?
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 14:09
Merci pour votre aid en tout cas
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
22 juil. 2008 à 14:12
Ce que tu peus faire c'est mettre tes frames en dispay:none et si ça ne marche pas, met chaqune de tes frames dans un div et met le div en display:none;

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 14:43
Merci pour ton aide...

Je suis moyennement à l'aise avec la syntaxe que tu m'as proposé....

J'ai essayé :

<HTML>
<HEAD>
 <TITLE></TITLE>
<STYLE type="text/css">
@media print {
   DIV {display:none;}
}
@media screen {
   DIV {display:block;}
}
</STYLE>
</HEAD>



<FRAMESET name=FSMain >
<FRAMESET name=FSMenu >

<FRAME  name=Menu  src="menu.htm">

<FRAME id=MenuCode src="menucode.htm">

</FRAMESET>
<FRAME  id=Main name=Main src="main.htm" >
</FRAMESET>
</HTML>


Mais je crois pas vraiment que c'est ça car ça n'as pas changé le résultat...
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
22 juil. 2008 à 14:47
en fait il faut faire une fonction javascript qui met en display:none les autre frames avant l'impression !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 15:06
merci bcp mais aaaaaaah je patauge....
T'as pas un petit exemple

function printframe() {
window.print();
window.top.document.getElementById('MenuCode');
window.top.document.getElementById('Menu');

J'y arrive pas
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
22 juil. 2008 à 15:31
<FRAMESET name='FSMain' >
<FRAMESET name='FSMenu' >
<FRAME  id='Menu'  src="menu.htm">
<FRAME id='MenuCode' src="menucode.htm">
</FRAMESET>
<FRAME  id='Main' name='Main' src="main.htm" >
</FRAMESET>
</HTML>


function printframe() {
      document.getElementById('Menu').style.display = 'none';
      document.getElementById('MenuCode').style.display = 'none';
      window.print();
}

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 16:53
Merci pour ta patience.

J'ai essayé le code mais ca ne fonctionne pas encore.
Comme je le place dans ma frame Menu et que j'aimerais par contre que tout ca imprime la frame Main j'imagine que le ciblage n'est pas le bon ? Ou alors je devrais mettre ce code dans ma page du frameset et l'apeller depuis mon autre page ?
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
22 juil. 2008 à 17:04
je ne sais pas alors, je suis désolé, peut être que demain matin si tu n'a pas eu de solution je la trouverai, rien de mieux qu'une bonne nuit de someil !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
zrzl Messages postés 10 Date d'inscription mardi 22 juillet 2008 Statut Membre Dernière intervention 6 août 2008
22 juil. 2008 à 17:10
en mettant parent.document mes 2 frames du menu disparaissent et la fenetre d'impression apparait. Mais lorsque je lance l'impression cela continue de m'imprimer mes 3 frames sur 3 feuilles séparées !?! et je me retrouve ensuite avec une fenêtre sans menu :)
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 juil. 2008 à 08:19
pourquoi ne pas essayer de mettre les styles comme il faut ?

p0.htm:

<html>
    <style>
        @media print
            {.InEo    {    visibility:hidden;    }
            }
        @media screen
            {.InEo    {    visibility:visible;    }  
            }
    </style>
    <frameset rows="*"cols="150,150,*">
        <frame name="p1" src="p1.htm">
        <frame name="p2" src="p2.htm" class="InEo">
        <frame name="p3" src="p3.htm" class="InEo">
    </frameset>
</html>

p1.htm :

p1
imprimer

....

et on n'imprime que p1....
adapte à ce que tu veux....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Rejoignez-nous