Question stupide....Comment ouvrir dans une nouvelle fenêtre, un aperçu avant impression de la page en cours ?
Simple me direz-vous, en spécifiant comme feuille de style pour screen la feuille css dédiée à print.
Soit, mais comment faire sans pour autant recharger la page (puisqu’elle est déjà en cache). En fait, il y a deux questions:
1) Comment faire un petit script qui ouvre la page en cours dans une nouvelle fenêtre (avec idéalement des dimensions et un positionnement donnés...)
2) Comment modifier le <link rel="stylesheet" type="text/css" href="./assets/templates/css/macssscreen.css" media="screen,projection" /> en <link rel="stylesheet" type="text/css" href="./assets/templates/css/macsssprint.css" media="screen,projection" /> sans devoir pour autant recharger la page.
En pratique, puisqu’il ne semble pas possible de déclencher simplement l’aperçu avant impression du navigateur utilisé, l’idée est de faire un petit bouton qui montre cet aperçu pour assurer à l’utilsateur qu’il ne va pas imprimer cinquante mille kilomètres de bandeaux inutiles ou autres menus sans rapport avec le contenu de la page en cours...Bref, que la gestion de l’impression a bien été prise en compte...
Merci de vos idées.
Do you speak english? Sorry, but my French is a bit rusty...
You don’t really need a special "print-link". All you need to do is add another stylesheet in the HEAD with: media="print"
So, in your case, just use both in the head section:
<link rel="stylesheet" type="text/css" href="./assets/templates/css/macssscreen.css" media="screen,projection" />
<link rel="stylesheet" type="text/css" href="./assets/templates/css/macsssprint.css" media="print" />
If you still need a link, just use JS: <a href="window.print();">print</a>
To get a preview of how it’s really going to look like when printed, there is no 100% guarantee that your screen-page will look and behave exactly like your print. That’s what your browser print-preview function is for. And you can’t access that command directly via JS. That’s just how it is. If you want full control over your print-layout, use PDFs.
Sorry, that should be: <a href="#" onClick="window.print();">print</a> or <a href="javascript:window.print();">print</a>
That’s just regular HTML triggering a standard Javascript function. i.e. no extra <script></script> tags are needed.
This triggers the browser’s print-menu (see screenshot, Firefox print menu sample), not a normal browser window.
What you actually want, is open the browser command "print preview", but afaik that is not possible in Javascript. Maybe there is a browser-specific command (i.e. only valid for Firefox, or only valid for Safari, or IE), but certainly none that works across allbrowsers.
I remember a neat little JS/CSS trick. Gotta dig it up later when I find time. iirc, it was an article on alistapart.com or some such site...