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?

Était-ce utile?

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 / .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top