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:
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>
CSS associé :
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;
}
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
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);
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
<!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>
Accessoirement, si quelqu'un sait comment modifier le doctype d'une page, ça m'éviterais de devoir faire appel à ce dernier fichier.


Donc voilà, si quelqu'un a une idée pour forcer IE ajouter cette balise link dans le head du popup, je suis preneur