Détection des événements d'impression dans les applications multi-navigateurs
Malgré la dépréciation de onbeforeprint() et onafterprint() dans les navigateurs non IE, il existe est un moyen d'obtenir des fonctionnalités similaires en utilisant window.matchMedia et window.onbeforeprint/window.onafterprint.
Utilisation de window.matchMedia
De nombreux navigateurs modernes prennent désormais en charge window.matchMedia, qui permet la détection des modifications dans les requêtes multimédias CSS . En combinant window.matchMedia avec window.onbeforeprint/window.onafterprint, il est possible de créer une approche multi-navigateurs pour détecter les événements d'impression.
Rappel d'événement
Le la fonction suivante peut être utilisée comme rappel d'événement pour window.matchMedia :
<code class="javascript">window.matchMedia('print').addListener(function(media) { if (media.matches) { // Print is starting } else { // Print has ended } });</code>
Legacy Support IE et Firefox
Pour les navigateurs qui ne prennent pas en charge window.matchMedia, il est toujours possible d'écouter directement les événements onbeforeprint et onafterprint :
<code class="javascript">$(window).on('beforeprint', beforePrint); $(window).on('afterprint', afterPrint);</code>
Remarque : Comme mentionné dans la réponse fournie, il est important de savoir que l'écouteur window.matchMedia peut se déclencher plusieurs fois au cours d'une même tâche d'impression dans certains navigateurs. Cela peut affecter l'exécution de vos gestionnaires d'événements, alors tenez compte de ce comportement lors de la conception de votre logique.
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!