while - javascript for each




¿Cómo desencadenar JavaScript en el evento de impresión? (3)

Para cualquiera que se tropiece con esta respuesta de Google, permítanme aclarar las cosas:

Como señaló Ajay, hay dos eventos que se disparan para imprimir, pero no tienen un buen soporte; por lo que he leído, solo son compatibles con los navegadores Internet Explorer y Firefox (6+). Esos eventos son window.onbeforeprint y window.onafterprint, que (como era de esperar) se activarán antes y después del trabajo de impresión.

Sin embargo, como se señala en el enlace de Joe ( https://stackoverflow.com/a/9920784/578667 ), no es exactamente cómo se implementa en todos los casos. En la mayoría de los casos, ambos eventos se disparan antes del diálogo; en otros, la ejecución del script puede detenerse durante el diálogo de impresión, por lo que ambos eventos pueden dispararse al mismo tiempo (después de que se haya completado el diálogo).

Para obtener más información (y compatibilidad con el navegador) para estos dos eventos:

https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeprint

https://developer.mozilla.org/en-US/docs/DOM/window.onafterprint

La respuesta corta: si espera interferir con el flujo de impresión, no lo haga. Si espera desencadenar código después de imprimir, no va a funcionar como lo desea; esperar un soporte de navegador deficiente, y tratar de degradar con gracia.

¿Es posible activar un evento javascript cuando un usuario imprime una página? Me gustaría eliminar una dependencia de una biblioteca de JavaScript, cuando un usuario opta por imprimir una página, ya que la biblioteca es ideal para la pantalla pero no para la impresión.

¿Alguna idea de cómo lograr esto?


Para cualquiera que venga aquí buscando una opción usando Bootstrap como yo, utilicé el siguiente código para lograr esto cuando se hace clic en un botón de impresión . Esto no funcionará cuando presionen CTRL + P.

$("#print_page").click(function(){
$("#print_section").addClass('visible-print-block');
window.print();
$("#print_section").removeClass('visible-print-block');})

¡Necesitará agregar impresión oculta a cualquier cosa que no quiera imprimir y luego agregar una identificación (o una clase si tiene más de una sección) de print_section al bit que desea imprimir! Poco hacky pero funciona!


si tiene un escenario en el que desea hacer algo antes de que aparezca el cuadro de diálogo Imprimir o justo después de que el documento se envíe a la cola de la impresora, utilice la ventana de eventos a continuación.onafterprint, window.onbeforeprint





printing