Wenn Sie versuchen, das Fenster unmittelbar nach dem Aufruf von print () zu schließen, wird das Fenster möglicherweise sofort geschlossen und print () funktioniert nicht. Dies ist , was Sie nicht tun sollten :
window.open();
...
window.print();
window.close();
Diese Lösung funktioniert in Firefox, da sie beim Aufruf von print () wartet, bis der Druckvorgang abgeschlossen ist, und dann die Verarbeitung von Javascript fortsetzt und das Fenster schließt (). Der IE schlägt damit fehl, da er die Funktion close () aufruft, ohne auf den Aufruf von print () zu warten. Das Popup-Fenster wird geschlossen, bevor der Druckvorgang abgeschlossen ist.
Eine Möglichkeit, dies zu lösen, ist die Verwendung des Ereignisses "onafterprint". Ich empfehle es Ihnen jedoch nicht, da diese Ereignisse nur im IE funktionieren.
Am besten schließen Sie das Popup-Fenster, sobald der Druckdialog geschlossen ist (der Druckvorgang ist abgeschlossen oder abgebrochen). In diesem Moment wird das Popup-Fenster fokussiert und Sie können das Ereignis "onfocus" zum Schließen des Popups verwenden.
Fügen Sie dazu einfach diesen eingebetteten Javascript-Code in Ihr Popup-Fenster ein:
<script type="text/javascript">
window.print();
window.onfocus=function(){ window.close();}
</script>
Hoffe das hepls ;-)
Aktualisieren:
Für neue Chrome-Browser wird es möglicherweise noch zu früh geschlossen, siehe hier . Ich habe diese Änderung implementiert und sie funktioniert für alle aktuellen Browser: 29.02.16
setTimeout(function () { window.print(); }, 500);
window.onfocus = function () { setTimeout(function () { window.close(); }, 500); }