クロスブラウザーの onbeforeprint() および onafterprint() ソリューション
Web ページがさまざまなブラウザーで印刷されることを検出するのは課題でしたこれまでは統一されたアプローチがなかったため、従来、Internet Explorer はこの目的のために onbeforeprint() および onafterprint() イベントを提供していましたが、他のブラウザーには同等の機能がありませんでした。しかし、最近の進歩により、新たな可能性がもたらされました。
window.matchMedia の利用
多くの最新ブラウザは、CSS メディアの検出を可能にする window.matchMedia API をサポートするようになりました。クエリが変更されます。 window.matchMedia を window.onbeforeprint/window.onafterprint と組み合わせて使用することで、クロスブラウザー ソリューションを実現できます。
次のコード スニペットは実装を示しています。
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); }
利点と注意点
このアプローチは、印刷要求を検出するためのクロスブラウザー ソリューションを提供します。ただし、一部のブラウザでは beforePrint() と afterPrint() への複数の呼び出しがトリガーされ、望ましくない動作が発生する可能性があることに注意することが重要です。したがって、印刷イベントに応じた処理要件を慎重に検討することが重要です。
その他のリソース
詳細と例については、次の外部リソースを参照してください。
以上が複数のブラウザにわたる印刷要求を確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。