En fait, je suis passé par document.styleSheets. Voici du JavaScript qui fonctionne très bien sous FireFox mais pas sous IE :
Code :
- // document.styleSheets[1] correspond au media print de ma feuille de style
- var CSSRules = document.styleSheets[1].cssRules;
- // spécificité IE ...
- if (uagent.indexOf("MSIE" ) != -1) {
- CSSRules = document.styleSheets[1].rules;
- }
- // autre spécificité IE ...
- var rule = CSSRules[10];
- if (uagent.indexOf("MSIE" ) != -1) {
- rule = CSSRules[9];
- }
- // ctrl est le 'input' de type checkbox
- if (ctrl.checked) {
- rule.style.display = "block";
- } else {
- rule.style.display = "none";
- }
|
Bizarrement, sous IE, le bloc sur lequel est appliqué le display = "none"; est toujours imprimé, alors que si dans la CSS du media print, j'ai
Code :
- #ddm_print {
- display: none;
- }
|
le bloc n'est pas imprimé ......... Comme si la modification du style n'est pas appliqué (sachant que le style display est à 'block' par défaut dans la CSS).
A noter que si j'utilise l'attribut 'visibility', sous Firefox, j'avais un joli espace blanc à la place du composant, alors qu'avec display, la zone n'apparaît pas (euh, je suis clair, là ?) et ça ne fonctionne pas sous IE, de toute façon.
Si quelqu'un a une idée, je suis preneur.