Acabo de pasar 45 minutos en este problema "SIMPLE", tratando de conseguir que la forma en que quería que funcione
Tenía una imagen dentro de una etiqueta img, generada dinámicamente por un complemento jQuery Barcode
que tuve que imprimir. Quería que se imprimiera en otra ventana y luego cerrar la ventana. Esto se suponía todo a suceder cuando el usuario hace clic en un botón en el interior de un plugin jQuery Grid
, dentro de un jQuery-UI
de diálogo junto con jQuery-UI
extensor de diálogo que se le aplica.
ajusté todo el mundo responde hasta que finalmente ocurrió esto, tal vez puede ayudar a alguien.
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);
El setTimeout
es no sólo para mierdas y risitas, que es la única manera que encontré Firefox 42
golpearía esas funciones. Simplemente omitiría las funciones .close()
hasta que agregué un punto de interrupción, luego funcionó perfectamente. Así que supongo que creó esas instancias de ventana antes de que pudiera aplicar la función de evento onforeforeload y las funciones de evento afterprint, o algo así.
Genial. Pero, ¿qué sucede si quiero mostrar una imagen diferente que inicie la ventana emergente? – andrew
Echa un vistazo a los estilos CSS para imprimir. Básicamente puede tener una imagen oculta en la vista de pantalla, y luego visible para la vista de impresión. –