Comment puis-je exécuter une fonction de jQuery uniquement sur l'écran arrière-plan: p>
J'ai un @Media code>? p>
Screen.CSS Code> stylesheet et un
imprimable.css code> feuille de style. J'ai deux fonctions JavaScript, dont une
3 Réponses :
Dans les derniers navigateurs, vous pouvez utiliser MatchsMedia:
if (window.matchMedia("screen").matches) { .... }
Elégant, cependant, mon script semble toujours s'appliquer également à l'impression (impression au format PDF). En utilisant Chrome 21, Firefox 11, Safari 6 sur Mac.
Je pense que vous pourriez utiliser modernizr. Bien que, il doit y avoir une manière native de le faire dans JavaScript.
http://modernizr.com/docs / # MQ P>
Je ne l'ai jamais essayé, mais c'est quelque chose comme ceci: p> méfiez-vous avec les anciens navigateurs ne prenant pas en charge les requêtes multimédias. p> p>
Merci, j'ai essayé votre suggestion, mais mon script semble toujours s'appliquer à imprimer (imprimé au format PDF). En utilisant Chrome 21, Firefox 11, Safari 6 sur Mac.
Dites-vous que ceci: modernizr.mq ("seul écran") code> est retourné true et exécuté votre code avant d'imprimer?
Oui, si (modernizr.mq ("seul écran")) {$ ("h1 '). Texte (" Ecran multimédia ");} code> me donne" écran multimédia "dans la fenêtre de navigation et PDF imprimer.
En fait, je ne pense pas que cela revenait vrai. Quelle classe donnerait-il à ma balise code>?
Tout script serait dirigé lorsque la page se charge, donc en utilisant Au lieu de cela, vous devez détecter chaque fois que la requête multimédia change et changez la page. par conséquent. Vous pouvez utiliser quelque chose comme ENQUIRE.JS à faire si facilement: P> si (modernizr.mq ("seul écran")) {$ ("h1 '). Texte (" Écran de support ");} code > est inutile car il exécute votre script tandis que em> vous êtes sur
@media écran code>.
// This is just an example, be more creative!
enquire.register("screen", {
match: function() {
$('#only-show-on-screen').show();
},
unmatch: function() {
$('#only-show-on-screen').hide();
}
});
C'est la vraie réponse. Toutes les autres réponses (à ce jour) attendent que la page soit rechargée sur l'impression, mais ce n'est pas le cas. Tout changement DOM effectué pour la version de l'écran persiste sur la version imprimée.
J'ai mis à jour ma réponse pour le rendre plus clair et comment cela pourrait être fait avec Enquire.js.
Juste pour clarifier: J'imprime en PDF, car je n'ai actuellement pas accès à une imprimante physique. Néanmoins, j'ai besoin de cela pour appliquer à la fois sur des hardcopies et des impressions PDF.