|
Publicité | ||||||||||||||||||||||
|
|
#1 (permalink) |
|
Membre régulier
![]() Date d'inscription: janvier 2006
Messages: 110
|
bonjour,
voilà ce que je dois faire pour ma page web: En affichage web: - au clic, affiche la page courante avec la css print dans une popup En affichage print: - Centré - au clic, lancer l'impression et fermer la popup voilà mon code html de la page default.hmt: Code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <link rel="stylesheet" media="screen" href="company1.css" type="text/css"> <link rel="stylesheet" media="print" href="company1_print.css" type="text/css"> </head> <body> <div id="TopLayer"> <a href="Javascript:void%20window.open('default.htm',%20'win2',%20'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no')" rel="nofollow">Print this page</a> </div> <div id="TopLayer2"> <a href="Javascript:self.print()" rel="nofollow">Print this page</a> </div> <div id="TitleLayer"> Title Layer </div> <div id="TextLayer"> Text Layer </div> <div id="LeftLayer"> Left Layer </div> </body> </html> company1_print Code :
/* Relative fonts defined in Body */ BODY, DIV, TD, P, .text, .largetext { FONT-WEIGHT: normal; FONT-SIZE: 12pt; COLOR: #000000; LINE-HEIGHT: normal; FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif; MARGIN-TOP: 0px; MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px; } #TopLayer { display:none; } #TopLayer2 { position:absolute; width:100%; height:55px; z-index:1; left: 0px; top: 0px; background-color: #808080; layer-background-color: #99c99; border: 1px none #000000; } #TitleLayer { position:absolute; width:600px; height:45px; z-index:2; left: 20px; top: 60px; background-color: #000000; layer-background-color: #000000; border: 1px none #000000; } #TextLayer { position:absolute; width:550; height:150px; z-index:3; left: 20px; top: 130px; } #LeftLayer{ display:none; } A:link { COLOR: midnightblue; TEXT-DECORATION: underline; } A:hover { COLOR: deepskyblue; } A:visited { COLOR: midnightblue; TEXT-DECORATION: underline; } .home { COLOR: #000000; } .footer { FONT-SIZE: 10pt; COLOR: white; } .webindexer { FONT-WEIGHT: bold; COLOR: #000000; FONT-STYLE: italic; } .blocktitle { FONT-WEIGHT: bold; } .htmlcodes { COLOR: maroon; FONT-SIZE: 10pt; } H1 { FONT-WEIGHT: bold; } H2 { FONT-WEIGHT: bold; FONT-SIZE: 11pt; } .metalink { FONT-SIZE: 10pt; } .maintitle { FONT-WEIGHT: bold; FONT-SIZE: 14pt; COLOR: #000000; } .white { COLOR: white; FONT-SIZE: 10pt; } .small { FONT-SIZE: 10pt; } .smItem { FONT-SIZE: 13pt; } .smSubItem { } Code :
/* Relative fonts defined in Body */ BODY, DIV, TD, P, .text, .largetext { FONT-WEIGHT: normal; FONT-SIZE: 100%; COLOR: #000000; LINE-HEIGHT: normal; FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif; MARGIN-TOP: 0px; MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px; } #TopLayer { position:absolute; width:100%; height:55px; z-index:1; left: 0px; top: 0px; background-color: #808080; layer-background-color: #99c99; border: 1px none #000000; } #TopLayer2 { display:none; } #TitleLayer { position:absolute; width:100%; height:45px; z-index:2; left: 0px; top: 60px; background-color: #99cc99; layer-background-color: #99c99; border: 1px none #000000; } #TextLayer { position:absolute; width:70%; height:150px; z-index:3; left: 200px; top: 130px; } #LeftLayer{ position:absolute; width:150px; height:115px; z-index:4; left: 0px; top: 130px; } A:link { COLOR: midnightblue; TEXT-DECORATION: underline; } A:hover { COLOR: deepskyblue; } A:visited { COLOR: midnightblue; TEXT-DECORATION: underline; } .home { COLOR: red; } .footer { FONT-SIZE: 85%; COLOR: white; } .webindexer { FONT-WEIGHT: bold; COLOR: midnightblue; FONT-STYLE: italic; } .blocktitle { FONT-WEIGHT: bold; } .htmlcodes { font-size: 90%; color: maroon; } H1 { FONT-WEIGHT: bold; FONT-SIZE: 100%; } H2 { FONT-WEIGHT: bold; FONT-SIZE: 90%; } .metalink { FONT-SIZE: 80%; } .maintitle { FONT-WEIGHT: bold; FONT-SIZE: 120%; COLOR: #003399; } .white { COLOR: white; FONT-SIZE: 90%; } .small { FONT-SIZE: 80%; } .smItem { FONT-SIZE: 110%; } .smSubItem { } LI { font-size: 90%; } Merci d'avance pour votre aide |
|
|
|
|
|
#2 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: octobre 2003
Messages: 2 903
|
Salut,
Ça n'a en fait pas de lien avec javascript. Code :
<link rel="stylesheet" media="screen" href="company1.css" type="text/css"> <link rel="stylesheet" media="print" href="company1_print.css" type="text/css"> Si tu veux simuler l'aperçu avant impression, il faut que tu ne mettes plus qu'une feuille de style à l'ouverture du document : Code :
<link rel="stylesheet" media="screen" href="company1_print.css" type="text/css"> <link rel="stylesheet" media="print" href="company1_print.css" type="text/css"> |
|
|
|
|
|
#3 (permalink) |
|
Membre régulier
![]() Date d'inscription: janvier 2006
Messages: 110
|
Merci pour ta réponse, ce n'est pas vraiment ce que je voulais ^^
à vrai dire, j'ai ma page default.htm qui affiche selon le company1 et je voudrais lorsque que je clique sur imprimer avoir une pop up qui s'ouvre en tenant compte juste du company1_print qui contiendra un lien dessus pour imprimer le tout. Je voulais savoir s'il était possible d'ouvrir le popup en utilisant la même page avec le window.open pour que le pop up affiche les éléments selon le company1_print et qu'ensuite dans le pop up il y ait un lien imprimer qui fasse le self.print(). Je dois utiliser une autre page html pour le popup si j'ai bien compris? Dernière modification par zekabyle ; 01/07/2009 à 11h25. |
|
|
|
|
|
#4 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: octobre 2003
Messages: 2 903
|
Javascript reste anecdotique
Soit tu utilises une autre page en effet, soit tu ouvres la fenêtre avec window.open, avec une URL de cette même page contenant un paramètre en querystring. Si ce paramètre existe ou s'il a une valeur que tu as choisi tu changes l'appel des feuilles de styles. Ceci implique donc un langage serveur. Ou si tu veux le faire tout en javascript, tu peux voir lire la FAQ. |
|
|
|
|
|
#5 (permalink) |
|
Membre régulier
![]() Date d'inscription: janvier 2006
Messages: 110
|
je coince un peu pour faire le javascript car je ne vois pas comment faire pour par exemple modifier le head pour enlever le lien du <link rel="stylesheet" media="screen" href="company1.css" type="text/css">
pour y mettre <link rel="stylesheet" media="print" href="company1_print.css" type="text/css"> à la place. Est-ce possible? |
|
|
|
|
|
#8 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: octobre 2003
Messages: 2 903
|
J'ai supprimé un message qui disait une bêtise. Voici la façon de faire :
Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>supprimer un élément (style) dans le head</title> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <style type="text/css"> body {background:#000;} p {padding:2px;background:#333;color:#ddd;font-size:1.2em;font-family:Helvetica, Arial, "sans serif";} </style> </head> <body> <p>Je teste.</p> <script type="text/javascript"> <!-- var heads = document.getElementsByTagName("head"); var styles = document.getElementsByTagName("style"); heads[0].removeChild(styles[0]); //--> </script> </body> </html> |
|
|
|
|
|
#10 (permalink) |
|
Membre régulier
![]() Date d'inscription: janvier 2006
Messages: 110
|
j'ai essayé la solution et pour le moment j'ai les modifications qui se font sur la page qui appelle le pop up au lieu du pop up
Voilà ma page html: Code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <link rel="stylesheet" media="screen" href="company1.css" type="text/css"> <link rel="stylesheet" media="print" href="company1_print.css" type="text/css"> <script type="text/javascript"> function display() { var win =window.open("default.htm","nom_popup","menubar=no, status=no, scrollbars=no, menubar=no, width=640, height=480"); var heads = document.getElementsByTagName("head"); var link = document.getElementsByTagName("link"); heads[0].removeChild(link[0]); } function printer(){ self.print(); self.close(); } </script> </head> <body> <div id="TopLayer"> <a href="Javascript:display()" >Print this page</a> </div> <div id="TopLayer2"> <a href="Javascript:printer()">imprimer la page</a> </div> <div id="TitleLayer"> Title Layer </div> <div id="TextLayer"> Text Layer </div> <div id="LeftLayer"> Left Layer </div> </body> </html> |
|
|
|
|
|
#11 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: octobre 2003
Messages: 2 903
|
Cette façon de faire ne peut pas fonctionner pour deux raisons :
1) parce que tu agis sur document alors que pour agir sur la popup il faudrait agir sur win.document. 2) le point 1) ne fonctionnerait de toute façon pas car tu essaie d'agir sur le DOM avant qu'il ne soit charger, puisque tout de suite après la création de la popup. Il faut donc ouvrir cette même page avec un querystring et le détecter : Code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <link rel="stylesheet" media="screen" href="company1.css" type="text/css"> <link rel="stylesheet" media="print" href="company1_print.css" type="text/css"> <script type="text/javascript"> function display() { var win = window.open("tmp.html?p=true","nom_popup","menubar=no, status=no, scrollbars=no, menubar=no, width=640, height=480"); } function printer(){ self.print(); self.close(); } var querystring = window.location.toString().split("?")[1]; if (querystring!==undefined) { var couples = querystring.split("&"); var parametres = []; var couple = []; for (var i=0,imax=couples.length; i<imax; i++) { couple = couples[i].split("="); parametres.push([couple[0], couple[1]]); } if (parametres[0][0]==="p" && parametres[0][1]==="true") { var heads = document.getElementsByTagName("head"); var link = document.getElementsByTagName("link"); heads[0].removeChild(link[0]); } } </script> </head> <body> <div id="TopLayer"> <a href="Javascript:display()" >Print this page</a> </div> <div id="TopLayer2"> <a href="Javascript:printer()">imprimer la page</a> </div> <div id="TitleLayer"> Title Layer </div> <div id="TextLayer"> Text Layer </div> <div id="LeftLayer"> Left Layer </div> </body> </html> |
|
|
|
|
|
#12 (permalink) |
|
Membre régulier
![]() Date d'inscription: janvier 2006
Messages: 110
|
Merci beaucoup ça marche
juste un petit truc, dans mon pop, j'ai les 2 liens suivants qui s'affichent: Code :
<div id="TopLayer"> <a href="Javascript:display('default.htm')" >Print this page</a> </div> <div id="TopLayer2"> <a href="Javascript:printer()">imprimer la page</a> </div> Code :
#TopLayer { position:absolute; width:100%; height:55px; z-index:1; left: 0px; top: 0px; background-color: #808080; layer-background-color: #99c99; border: 1px none #000000; } #TopLayer2 { display:none; } Code :
#TopLayer { display:none; } #TopLayer2 { position:absolute; width:100%; height:55px; z-index:1; left: 0px; top: 0px; background-color: #808080; layer-background-color: #99c99; border: 1px none #000000; } |
|
|
|
|
|
#13 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: octobre 2003
Messages: 2 903
|
Mea culpa et c'est aussi la tienne, il faut aussi réfléchir maintenant que tu sais que tu peux intervenir sur ces éléments
En fait, plutôt que de supprimer une feuille de style du document, il suffit juste de remplacer son attribut href : Code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <link rel="stylesheet" media="screen" href="style1.css" type="text/css"> <link rel="stylesheet" media="print" href="style2.css" type="text/css"> <script type="text/javascript"> function display() { var win = window.open("tmp.html?p=true","nom_popup","menubar=no, status=no, scrollbars=no, menubar=no, width=640, height=480"); } function printer(){ self.print(); self.close(); } var querystring = window.location.toString().split("?")[1]; if (querystring!==undefined) { var couples = querystring.split("&"); var parametres = []; var couple = []; for (var i=0,imax=couples.length; i<imax; i++) { couple = couples[i].split("="); parametres.push([couple[0], couple[1]]); } if (parametres[0][0]==="p" && parametres[0][1]==="true") { var links = document.getElementsByTagName("link"); links[0].href = links[1].href; } } </script> </head> <body> <div id="TopLayer"> <a href="Javascript:display()" >Print this page</a> </div> <div id="TopLayer2"> <a href="Javascript:printer()">imprimer la page</a> </div> <div id="TitleLayer"> Title Layer </div> <div id="TextLayer"> Text Layer </div> <div id="LeftLayer"> Left Layer </div> </body> </html> |
|
|
|
|
|
![]() |
||
css print popup
|
||
| Outils de la discussion | |
|
|