यदि आप प्रिंट () कॉल के तुरंत बाद विंडो को बंद करने की कोशिश करते हैं, तो यह तुरंत विंडो बंद कर सकता है और प्रिंट () काम नहीं करेगा। यह वह है जो आपको नहीं करना चाहिए :
window.open();
...
window.print();
window.close();
यह समाधान फ़ायरफ़ॉक्स में काम करेगा, क्योंकि प्रिंट () कॉल पर, यह तब तक इंतजार करता है जब तक कि छपाई नहीं हो जाती है और फिर यह जावास्क्रिप्ट और विंडो को बंद करना जारी रखता है। IE इसके साथ विफल हो जाएगा क्योंकि यह प्रिंट () कॉल की प्रतीक्षा किए बिना बंद () फ़ंक्शन को कॉल करता है। प्रिंटिंग होने से पहले पॉपअप विंडो बंद हो जाएगी।
इसे हल करने का एक तरीका "onafterprint" इवेंट का उपयोग करके है, लेकिन मैं आपको इसकी अनुशंसा करता हूं कि ये ईवेंट केवल IE में काम करता है।
प्रिंट संवाद बंद होने के बाद (मुद्रण किया जाता है या रद्द किया जाता है) सबसे अच्छा तरीका पॉपअप विंडो को बंद करना है। इस समय, पॉपअप विंडो फोकस्ड हो जाएगी और आप पॉपअप को बंद करने के लिए "ऑनफोकस" इवेंट का उपयोग कर सकते हैं।
ऐसा करने के लिए, बस अपने पॉपअप विंडो में इस जावास्क्रिप्ट एम्बेडेड कोड डालें:
<script type="text/javascript">
window.print();
window.onfocus=function(){ window.close();}
</script>
आशा है कि यह hepls ;-)
अपडेट करें:
नए क्रोम ब्राउज़रों के लिए यह अभी भी बहुत जल्द बंद हो सकता है यहाँ देखें । मैंने यह परिवर्तन लागू कर दिया है और यह सभी वर्तमान ब्राउज़रों के लिए काम करता है: 2/29/16
setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500); }