ホームページ  >  記事  >  データベース  >  `onbeforeprint()` と `onafterprint()` のブラウザ間の互換性を実現するにはどうすればよいですか?

`onbeforeprint()` と `onafterprint()` のブラウザ間の互換性を実現するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 11:13:03794ブラウズ

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

onbeforeprint() と onafterprint() に相当するクロスブラウザ

IE は onbeforeprint() と onafterprint() の機能を提供しますが、この機能はすべてのブラウザでネイティブにサポートされているわけではありません。クロスブラウザー ソリューションの場合は、window.matchMedia と window.onbeforeprint/window.onafterprint の利用を検討してください。

window.matchMedia を使用すると

window.matchMedia を使用して検出できます。 CSS メディア クエリがアクティブになったとき。印刷の場合は、メディアクエリ「print」を使用できます。イベント リスナーを window.matchMedia('print') オブジェクトに追加して、印刷の前後に関数を実行します。

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

この手法を使用すると、beforePrint() と afterPrint() が複数回呼び出される可能性があることに注意してください。 、ブラウザの動作に応じて異なります。

使用window.onbeforeprint/window.onafterprint

IE と Firefox は、window.onbeforeprint イベントと window.onafterprint イベントをサポートします。 jQuery を使用してこれらのイベントをリッスンします:

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

実装

このクロスブラウザー アプローチの詳細については、https://tjvantoll.com/2012 を参照してください。 /06/15/javascript による印刷リクエストの検出/

以上が`onbeforeprint()` と `onafterprint()` のブラウザ間の互換性を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。