Salut !
Pour imprimer une page, j'ouvre une nouvelle fen�tre dans laquelle j'importe le code HTML et CSS � imprimer depuis la fen�tre m�re (par clonage de n�ud).
Le probl�me, c'est que IE semble refuser de modifier le contenu de la balises head du popup lorsque cette modification est effectu�e par un script de la fen�tre m�re.
Un peu de code pour aider :
page contenant les donn�es � imprimer:
CSS associ� :
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans nom</title> <link type="text/css" rel="stylesheet" href="print.css" /> <script type="text/javascript" src="print.js"></script> </head> <body> <div id="print">Hello World à imprimer</div> <div>Hello World à ne pas imprimer</div> </body> </html>
le javascript (sp�cifique � IE, histoire de faciliter la lecture) :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 div{ font-size:1.5em; font-weight:bold; text-align:center; } div#print:hover{ cursor:pointer; }
et la page servant de base � l'impression :
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 var print=function(){ var printWindow=window.open('printBase.html'); var css=document.getElementsByTagName('link')[0].cloneNode(true); var html=document.getElementsByTagName('div')[0].cloneNode(true); var addNode=function(newCss, newHtml){ printWindow.document.documentElement.firstChild.innerHTML+=newCss.outerHTML; printWindow.document.documentElement.lastChild.innerHTML+=newHtml.outerHTML; } printWindow.attachEvent('onload', function(){addNode(css, html)}); } var init=function(){ document.getElementById('print').attachEvent('onclick', print); } window.attachEvent('onload', init);
Accessoirement, si quelqu'un sait comment modifier le doctype d'une page, �a m'�viterais de devoir faire appel � ce dernier fichier.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans nom</title> </head> <body> </body> </html>
Donc voil�, si quelqu'un a une id�e pour forcer IE ajouter cette balise link dans le head du popup, je suis preneur![]()
Partager