print () çağrısından hemen sonra pencereyi kapatmaya çalışırsanız, pencereyi hemen kapatabilir ve print () çalışmayacaktır. Yapmamanız gereken şey bu :
window.open();
...
window.print();
window.close();
Bu çözüm Firefox'ta çalışacaktır, çünkü print () çağrısında yazdırma tamamlanana kadar bekler ve ardından javascript'i işlemeye ve pencereyi kapatmaya () devam eder. IE, print () çağrısının yapılmasını beklemeden close () işlevini çağırdığı için bu konuda başarısız olacaktır. Açılır pencere, yazdırma tamamlanmadan kapatılacaktır.
Bunu çözmenin bir yolu "onafterprint" olayını kullanmaktır, ancak bu olaylar yalnızca IE'de çalıştığı için bunu size önermiyorum.
En iyi yol , yazdırma iletişim kutusu kapatıldıktan sonra açılır pencereyi kapatmaktır (yazdırma tamamlanır veya iptal edilir). Şu anda açılır pencereye odaklanılacak ve açılır pencereyi kapatmak için "onfocus" olayını kullanabilirsiniz.
Bunu yapmak için, bu javascript gömülü kodu açılır pencerenize eklemeniz yeterlidir:
<script type="text/javascript">
window.print();
window.onfocus=function(){ window.close();}
</script>
Umarım hepls ;-)
Güncelleme:
Yeni krom tarayıcılar için, yine de çok erken kapanabilir buraya bakın . Bu değişikliği uyguladım ve mevcut tüm tarayıcılar için çalışıyor: 29.02.2016
setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500); }