Rumah >pangkalan data >tutorial mysql >Bagaimana Mengesan Permintaan Cetakan Merentasi Berbilang Pelayar dengan Amanah?

Bagaimana Mengesan Permintaan Cetakan Merentasi Berbilang Pelayar dengan Amanah?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 14:05:30984semak imbas

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);
}

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!

Kenyataan:
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