ホームページ  >  記事  >  データベース  >  onbeforeprint() と onafterprint() を使用せずにブラウザ間で印刷イベントを処理する方法は?

onbeforeprint() と onafterprint() を使用せずにブラウザ間で印刷イベントを処理する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 00:11:02652ブラウズ

How to Handle Printing Events Across Browsers Without onbeforeprint() and onafterprint()?

クロスブラウザー印刷イベントの onbeforeprint() および onafterprint() の代替

イベント onbeforeprint() および onafterprint() は Internet Explorer でサポートされていますが、ブラウザ間の互換性がありません。この記事では、より最新で広くサポートされているテクノロジを利用する代替アプローチについて説明します。

印刷イベントをインターセプトするためのブラウザーに依存しないソリューションを実装するには、window.matchMedia API と window.onbeforeprint または window の組み合わせの使用を検討してください。アフタープリントについて。 window.matchMedia を使用すると、print などの特定の CSS メディア クエリが満たされたことを検出できます。

このアプローチを示すサンプル コード スニペットは次のとおりです。

<code class="javascript">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);
}</code>

matchMedia と onbeforeprint を組み合わせることで、 /onafterprint を使用すると、このソリューションは、ブラウザーを超えて印刷イベントを検出して応答する方法を提供します。印刷動作に応じて、一部のブラウザでは beforePrint() と afterPrint() への複数の呼び出しが発生する可能性があることに注意してください。

以上がonbeforeprint() と onafterprint() を使用せずにブラウザ間で印刷イベントを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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