28173 sujets

CSS et mise en forme, CSS3

Bonjour à tous.
J'ai bien lu quelques éléments à ce sujet sur cet excellent forum, mais néanmoins je n'ai pas trouvé de solution à mon probleme.
Je désire gérer l'impression d'une page html via des alternate css media 'print.
Ainsi l'utilisateur aurait le choix de plusieur type d'impression de sa page simplement en cliquant sur l'un des boutons 'imprimer' à sa disposition.
Chaque bouton permetant donc d'associer la css media print voulu.
Mon procédé fonctionne bien sous Firefox mais pas sou IE6 Smiley decu
link des css:

<link href="master.css" rel="stylesheet" type="text/css" >
<link href="impression1.css" rel="alternate stylesheet" type="text/css"  title="impression1" media="print">
<link href="impression2.css" rel="alternate stylesheet" type="text/css" title="impression2" media="print" >
<link href="impression3.css" rel="alternate stylesheet" type="text/css" title="impression3" media="print">

le tres classique javascript que l'on trouve un peu partout...

<script type="text/javascript">
/* activation des alternate style sheet */
function activeStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
	  	  /*alert(a.getAttribute("href")+ " - disabled true");*/
	   a.disabled = true;
      if(a.getAttribute("title") == title) {
	   a.disabled = false;
	  	  /*alert(a.getAttribute("href")+ " - disabled false");*/
		}

    }
  }
  /* print();*/
}
</script>

Le passage du parametre "title" se fait via un onclick

<a href="#" onClick="activeStyleSheet('impression1');">imprimer le Contenu</a>

etc...
J'ai bien essayé des tas de solutions en associant par exemple des css media print et une css media screen ayant le meme "title.
bref, je me heurte toujours au meme probleme : Ca ne fonctionne pas sous IE6. Comme si IE6 ne comprenait pas le disable=false ou true sur les css ayant un media 'print' ???

Auriez vous une idée ?
merci
Modifié par Gaoul (13 Jul 2007 - 09:31)
Modérateur
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici tes codes HTML et JS[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif

PS : Attention aux [ i] (là, il faut laisser l'espace pour ne pas entrer en conflit avec la mise en italique)
Modérateur
bonjour,

si tu as une page en xhtml , peut-etre devrait tu convertir le C en c et retester :
ton code :
a écrit :
<a href="#" onClick="activeStyleSheet('impression1');">imprimer le Contenu</a>

a tester
<a href="#" onclick="activeStyleSheet('impression1');">imprimer le Contenu</a>


gc
Malheureusement ce n'est pas ca. Smiley decu
Merci quand même..... je cherche
Tout de même étrange que ce disfonctionnement apparaisse uniquement pour les media print. Ca marche bien pour un media screen.
Modifié par Gaoul (13 Jul 2007 - 14:38)