Comment détecter via Javascript si une feuille de style d'impression est en vigueur?
-
19-08-2019 - |
Question
J'aimerais avoir un comportement différent lors de l'impression d'une feuille de style sur une page Web. Quelque chose dans le genre de:
Si cette page est en cours d'impression, ne le faites pas. la peine d'appeler SWFObject pour convoquer un .swf dans l'existence. Il suffit de laisser le HTML que le Flash remplacera.
J'ai essayé, par exemple, de définir un élément connu sur un style connu qui existe pour l'écran mais pas pour la feuille de style d'impression. Mais obtenir un " style " via Javascript ne reçoit pas un style calculé .
Résumé: est-il possible de déterminer quelle feuille de style est en vigueur sur plusieurs navigateurs?
La solution
Vous semblez confus que les feuilles de style d'impression soient utilisées lorsque vous affichez une page imprimable, mais ce n'est pas le cas. Une feuille de style d'impression n'est pas appliquée tant que l'utilisateur n'a pas envoyé la page à l'imprimante. À ce stade, le code JavaScript à exécuter est déjà terminé.
Vous souhaitez placer votre SWFObject dans un conteneur div et lui attribuer le style : no: <; code> pour le support d'impression.
Autres conseils
Vous pouvez utiliser JavaScript pour accéder aux feuilles de style du document, puis vérifier si la feuille de style "Imprimer" est active. Une fois que vous avez déterminé quel CSS est actif, vous pouvez gérer votre contenu.
La fonction getActiveStyleSheet
ressemblerait à ceci:
function getActiveStyleSheet()
{
var i, a;
for (i = 0; (a = document.getElementsByTagName("link")[i]); i++)
{
if (a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("title")
&& !a.disabled)
return a.getAttribute("title");
}
return null;
}
Vous pouvez trouver le code ici: http://www.alistapart.com/articles/alternate / .