複数のブラウザにわたる印刷要求を確実に検出するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-02 14:05:30
オリジナル
901 人が閲覧しました

How to Reliably Detect Print Requests Across Multiple Browsers?

クロスブラウザーの 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() への複数の呼び出しがトリガーされ、望ましくない動作が発生する可能性があることに注意することが重要です。したがって、印刷イベントに応じた処理要件を慎重に検討することが重要です。

その他のリソース

詳細と例については、次の外部リソースを参照してください。

  • [JavaScript による印刷リクエストの検出](http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/)

以上が複数のブラウザにわたる印刷要求を確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!