How to trigger javascript on print event?

For anyone stumbling upon this answer from Google, let me try to clear things up:

As Ajay pointed out, there are two events which are fired for printing, but they are not well-supported; as far as I have read, they are only supported in Internet Explorer and Firefox (6+) browsers. Those events are window.onbeforeprint and window.onafterprint, which (as you’d expect) will fire before and after the print job.

However, as pointed out in Joe’s link (https://stackoverflow.com/a/9920784/578667), that’s not exactly how it is implemented in all cases. In most cases, both events fire before the dialog; in others, script execution might be halted during the print dialog, so both events may fire at the same time (after the dialog has been completed).

For more information (and browser support) for these two events:

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

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

The short answer: if you’re hoping to interfere with the print flow, don’t. If you’re hoping to trigger code after printing, it’s not going to work how you’re wanting; expect poor browser support, and try to degrade gracefully.

Leave a Comment