Bagaimana Mengesan Permintaan Cetakan Merentasi Berbilang Pelayar dengan Amanah?

Linda Hamilton
Lepaskan: 2024-11-02 14:05:30
asal
950 orang telah melayarinya

How to Reliably Detect Print Requests Across Multiple Browsers?

Cross-Browser onbeforeprint() and onafterprint() Solution

Kesan apabila halaman web sedang dicetak merentas pelbagai penyemak imbas telah menjadi satu cabaran pada masa lalu kerana ketiadaan pendekatan bersatu. Secara tradisinya, Internet Explorer menyediakan acara onbeforeprint() dan onafterprint() untuk tujuan ini, tetapi pelayar lain tidak mempunyai fungsi yang setara. Walau bagaimanapun, kemajuan terkini telah memperkenalkan kemungkinan baharu.

Menggunakan window.matchMedia

Banyak penyemak imbas moden kini menyokong API window.matchMedia, yang membolehkan pengesanan media CSS perubahan pertanyaan. Dengan menggunakan window.matchMedia bersama-sama dengan window.onbeforeprint/window.onafterprint, penyelesaian silang penyemak imbas boleh dicapai.

Coretan kod berikut menunjukkan pelaksanaan:

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);
}
Salin selepas log masuk

Faedah dan Kaveat

Pendekatan ini menawarkan penyelesaian silang penyemak imbas untuk mengesan permintaan cetakan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa sesetengah penyemak imbas mungkin mencetuskan berbilang panggilan ke beforePrint() dan afterPrint(), yang berpotensi membawa kepada tingkah laku yang tidak diingini. Oleh itu, adalah penting untuk mempertimbangkan dengan teliti keperluan pemprosesan sebagai tindak balas kepada acara cetakan.

Sumber Lanjut

Untuk mendapatkan maklumat dan contoh lanjut, rujuk sumber luaran berikut:

  • [Mengesan Permintaan Cetakan dengan JavaScript](http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/)

Atas ialah kandungan terperinci Bagaimana Mengesan Permintaan Cetakan Merentasi Berbilang Pelayar dengan Amanah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan