J'ai un onglet ouvert lorsque l'utilisateur clique sur un bouton. Sur le onload
je fais apparaître la boîte de dialogue d'impression, mais l'utilisateur m'a demandé s'il était possible qu'après l'envoi à l'imprimante pour imprimer, l'onglet puisse se fermer. Je ne sais pas si cela peut être fait. J'ai essayé d'utiliser setTimeout();
, mais ce n'est pas une période définie car l'utilisateur peut être distrait et devoir rouvrir l'onglet. Y a-t-il un moyen d'accomplir cela?
Réponses
Trop de publicités?Bien sûr, cela se résout facilement en faisant ceci :
<script type="text/javascript">
window.onafterprint = window.close;
window.print();
</script>
Ou si vous voulez faire quelque chose comme par exemple allez à la page précédente.
<script type="text/javascript">
window.print();
window.onafterprint = back;
function back() {
window.history.back();
}
</script>
Je veux juste écrire ce que j'ai fait et ce qui a fonctionné pour moi (comme rien d'autre que j'ai essayé n'avait fonctionné).
J'ai eu le problème qu'IE fermait les fenêtres avant que la boîte de dialogue d'impression ne s'affiche.
Après de nombreux essais et erreurs, voici ce que j'ai commencé à travailler :
var w = window.open();
w.document.write($('#data').html()); //only part of the page to print, using jquery
w.document.close(); //this seems to be the thing doing the trick
w.focus();
w.print();
w.close();
Cela semble fonctionner dans tous les navigateurs.