ich nur 45 Minuten auf dieser "einfachen" Problem verbracht und versucht, es so, wie ich zu bekommen wollte, dass es funktioniert.
Ich hatte ein Bild in einem Img-Tag, dynamisch generiert von einem jQuery Barcode
Plugin, das ich drucken musste. Ich wollte, dass es in einem anderen Fenster druckt und danach das Fenster schließt. Dies sollte geschehen, nachdem der Benutzer eine Schaltfläche innerhalb eines jQuery Grid
Plugins innerhalb eines jQuery-UI
Dialogs zusammen mit dem Dialog-Extender jQuery-UI
angeklickt hat.
Ich habe alle Antworten angepasst, bis ich endlich dazu kam, vielleicht kann es jemandem helfen.
w = window.open(document.getElementById("UB-canvas").src);
w.onload = function() { w.print(); }
w.onbeforeunload = setTimeout(function() { w.close(); },500);
w.onafterprint = setTimeout(function() { w.close(); },500);
Die setTimeout
ist nicht nur für scheißt und kichert, es ist der einzige Weg, ich Firefox 42
gefunden würde diese Funktionen getroffen. Es würde einfach die .close()
Funktionen überspringen, bis ich einen Haltepunkt hinzugefügt habe, dann hat es perfekt funktioniert. Ich gehe also davon aus, dass diese Fensterinstanzen erstellt wurden, bevor sie die Ereignisfunktion onbeforeload und onafterprint-Ereignisfunktionen oder etwas Ähnliches anwenden konnten.
Kühl. Aber was, wenn ich möchte, dass ein anderes Bild zeigt, dass das Popup-Fenster startet? – andrew
Überprüfen Sie die CSS-Stile zum Drucken. Sie können grundsätzlich ein Bild in der Bildschirmansicht verbergen und dann für die Druckansicht sichtbar machen. –