Maison >base de données >tutoriel mysql >Comment obtenir la compatibilité entre navigateurs pour « onbeforeprint() » et « onafterprint() » ?

Comment obtenir la compatibilité entre navigateurs pour « onbeforeprint() » et « onafterprint() » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 11:13:03832parcourir

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

Équivalent multi-navigateur pour onbeforeprint() et onafterprint()

Bien qu'IE offre les fonctionnalités de onbeforeprint() et onafterprint(), cette fonctionnalité n'est pas supportée nativement dans tous les navigateurs. Pour une solution multi-navigateurs, envisagez d'utiliser window.matchMedia et window.onbeforeprint/window.onafterprint.

L'utilisation de window.matchMedia

window.matchMedia vous permet de détecter lorsqu'une requête multimédia CSS devient active. Dans le cas de l'impression, la requête média 'print' peut être utilisée. Ajoutez un écouteur d'événement à l'objet window.matchMedia('print') pour exécuter une fonction avant et après l'impression :

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

Notez que cette technique peut entraîner plusieurs appels à beforePrint() et afterPrint() , en fonction du comportement du navigateur.

Utilisation de window.onbeforeprint/window.onafterprint

IE et Firefox prennent en charge les événements window.onbeforeprint et window.onafterprint. Écoutez ces événements avec jQuery :

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

Mise en œuvre

Vous pouvez trouver plus d'informations sur cette approche multi-navigateurs sur https://tjvantol.com/2012 /06/15/detecting-print-requests-with-javascript/

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