É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!