ホームページ > データベース > mysql チュートリアル > クロスブラウザー アプリケーションで印刷イベントを検出するにはどうすればよいですか?

クロスブラウザー アプリケーションで印刷イベントを検出するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-03 15:22:02
オリジナル
289 人が閲覧しました

How to Detect Print Events in Cross-Browser Applications?

クロスブラウザ アプリケーションでの印刷イベントの検出

IE 以外のブラウザでは onbeforeprint() と onafterprint() が非推奨になっているにもかかわらず、これは、window.matchMedia と window.onbeforeprint/window.onafterprint を使用して同様の機能を実現する方法です。

window.matchMedia の使用

多くの最新ブラウザが window.matchMedia をサポートするようになりました。これにより、CSS メディア クエリの変更を検出できます。 window.matchMedia と window.onbeforeprint/window.onafterprint を組み合わせることで、印刷イベントを検出するクロスブラウザーのアプローチを作成できます。

イベント コールバック

次の関数は、window.matchMedia のイベント コールバックとして使用できます:

<code class="javascript">window.matchMedia('print').addListener(function(media) {
    if (media.matches) {
        // Print is starting
    } else {
        // Print has ended
    }
});</code>
ログイン後にコピー

レガシー IE および Firefox のサポート

window.matchMedia をサポートしていないブラウザの場合、 onbeforeprint および onafterprint イベントを直接リッスンすることは引き続き可能です:

<code class="javascript">$(window).on('beforeprint', beforePrint);
$(window).on('afterprint', afterPrint);</code>
ログイン後にコピー

注: 提供された応答で述べたように、window.matchMedia リスナーが一部のブラウザでは、単一の印刷ジョブ中に複数回起動される場合があります。これはイベント ハンドラーの実行に影響を与える可能性があるため、ロジックを設計する際にはこの動作を考慮してください。

以上がクロスブラウザー アプリケーションで印刷イベントを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート