jika Anda mencoba menutup jendela tepat setelah panggilan print (), ini mungkin akan segera menutup jendela dan print () tidak akan berfungsi. Inilah yang tidak boleh Anda lakukan :
window.open();
...
window.print();
window.close();
Solusi ini akan berfungsi di Firefox, karena pada panggilan print (), ia menunggu hingga pencetakan selesai dan kemudian melanjutkan pemrosesan javascript dan menutup () jendela. IE akan gagal dengan ini karena memanggil fungsi close () tanpa menunggu panggilan print () selesai. Jendela popup akan ditutup sebelum pencetakan selesai.
Salah satu cara untuk mengatasinya adalah dengan menggunakan event "onafterprint" tetapi saya tidak merekomendasikannya kepada Anda karena event ini hanya berfungsi di IE.
Cara terbaik adalah menutup jendela popup setelah dialog cetak ditutup (pencetakan selesai atau dibatalkan). Saat ini, jendela popup akan difokuskan dan Anda dapat menggunakan acara "onfocus" untuk menutup popup.
Untuk melakukan ini, cukup masukkan kode yang disematkan javascript ini di jendela popup Anda:
<script type="text/javascript">
window.print();
window.onfocus=function(){ window.close();}
</script>
Semoga ini hepls ;-)
Memperbarui:
Untuk browser chrome baru, mungkin masih terlalu cepat ditutup, lihat di sini . Saya telah menerapkan perubahan ini dan berfungsi untuk semua browser saat ini: 2/29/16
setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500); }