Rumah  >  Artikel  >  pangkalan data  >  Bagaimana Mengendalikan Peristiwa Pencetakan Merentasi Pelayar Tanpa onbeforeprint() dan onafterprint()?

Bagaimana Mengendalikan Peristiwa Pencetakan Merentasi Pelayar Tanpa onbeforeprint() dan onafterprint()?

Susan Sarandon
Susan Sarandonasal
2024-11-02 00:11:02652semak imbas

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

Alternatif kepada onbeforeprint() dan onafterprint() untuk Acara Pencetakan Rentas Pelayar

Acara onbeforeprint() dan onafterprint() disokong oleh Internet Explorer, tetapi ia kekurangan keserasian silang pelayar. Artikel ini meneroka pendekatan alternatif yang menggunakan teknologi yang lebih moden dan disokong secara meluas.

Untuk melaksanakan penyelesaian agnostik penyemak imbas untuk memintas acara cetakan, pertimbangkan untuk menggunakan gabungan API window.matchMedia dan window.onbeforeprint atau window. onafterprint. window.matchMedia membolehkan anda mengesan apabila pertanyaan media CSS tertentu, seperti cetakan, berpuas hati.

Berikut ialah coretan kod contoh yang menggambarkan pendekatan ini:

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

Dengan menggabungkan matchMedia dan onbeforeprint /onafterprint, penyelesaian ini menyediakan cara merentas penyemak imbas untuk mengesan dan bertindak balas terhadap acara cetakan. Ambil perhatian bahawa berbilang panggilan ke beforePrint() dan afterPrint() mungkin berlaku dalam sesetengah penyemak imbas, bergantung pada tingkah laku cetakan.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Peristiwa Pencetakan Merentasi Pelayar Tanpa onbeforeprint() dan onafterprint()?. 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