Home > Database > Mysql Tutorial > How to Achieve Cross-Browser Compatibility for `onbeforeprint()` and `onafterprint()`?

How to Achieve Cross-Browser Compatibility for `onbeforeprint()` and `onafterprint()`?

Linda Hamilton
Release: 2024-11-03 11:13:03
Original
861 people have browsed it

How to Achieve Cross-Browser Compatibility for `onbeforeprint()` and `onafterprint()`?

Cross-Browser Equivalent for onbeforeprint() and onafterprint()

While IE offers the functionality of onbeforeprint() and onafterprint(), this functionality is not natively supported in all browsers. For a cross-browser solution, consider utilizing window.matchMedia and window.onbeforeprint/window.onafterprint.

Using window.matchMedia

window.matchMedia allows you to detect when a CSS media query becomes active. In the case of printing, the media query 'print' can be used. Add an event listener to the window.matchMedia('print') object to execute a function before and after printing:

if ('matchMedia' in window) {
    window.matchMedia('print').addListener(function(media) {
        if (media.matches) {
            beforePrint();
        } else {
            $(document).one('mouseover', afterPrint);
        }
    });
}
Copy after login

Note that this technique may result in multiple calls to beforePrint() and afterPrint(), depending on the browser's behavior.

Using window.onbeforeprint/window.onafterprint

IE and Firefox support the window.onbeforeprint and window.onafterprint events. Listen to these events with jQuery:

$(window).on('beforeprint', beforePrint);
$(window).on('afterprint', afterPrint);
Copy after login

Implementation

You can find more information on this cross-browser approach at https://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/

The above is the detailed content of How to Achieve Cross-Browser Compatibility for `onbeforeprint()` and `onafterprint()`?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template