Maison  >  Article  >  base de données  >  Comment gérer les événements d'impression dans les navigateurs sans onbeforeprint() et onafterprint() ?

Comment gérer les événements d'impression dans les navigateurs sans onbeforeprint() et onafterprint() ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 00:11:02652parcourir

How to Handle Printing Events Across Browsers Without onbeforeprint() and onafterprint()?

Alternative à onbeforeprint() et onafterprint() pour les événements d'impression multi-navigateurs

Les événements onbeforeprint() et onafterprint() sont pris en charge par Internet Explorer, mais ils manque de compatibilité entre navigateurs. Cet article explore une approche alternative qui utilise des technologies plus modernes et largement prises en charge.

Pour implémenter une solution indépendante du navigateur pour intercepter les événements d'impression, envisagez d'utiliser une combinaison de l'API window.matchMedia et window.onbeforeprint ou window. après impression. window.matchMedia vous permet de détecter quand des requêtes multimédias CSS spécifiques, telles que l'impression, sont satisfaites.

Voici un exemple d'extrait de code qui illustre cette approche :

<code class="javascript">if ('matchMedia' in window) {
    // Chrome, Firefox, and IE 10+ support mediaMatch listeners
    window.matchMedia('print').addListener(function(media) {
        if (media.matches) {
            beforePrint();
        } else {
            // Fires immediately, so wait for the first mouse movement
            $(document).one('mouseover', afterPrint);
        }
    });
} else {
    // IE and Firefox fire before/after events
    $(window).on('beforeprint', beforePrint);
    $(window).on('afterprint', afterPrint);
}</code>

En combinant matchMedia et onbeforeprint /onafterprint, cette solution fournit un moyen multi-navigateur de détecter et de répondre aux événements d'impression. Notez que plusieurs appels à beforePrint() et afterPrint() peuvent se produire dans certains navigateurs, en fonction du comportement d'impression.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn