112 votes

Fermer la fenêtre automatiquement après la fermeture de la boîte de dialogue d'impression

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?

104voto

noam Points 755

C'est ce que j'ai trouvé, je ne sais pas pourquoi il y a un petit délai avant la fermeture.

  window.print();
 setTimeout(window.close, 0);

50voto

Samuel Bié Points 393

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>

14voto

Ying Style Points 95

Juste:

 window.print();
window.close();

Ça marche.

13voto

Holger Points 1350

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X