Internet Explorer 支援onbeforeprint() 和onafterprint() 事件,但它們缺乏跨瀏覽器相容性。本文探討了一種利用更現代、更廣泛支援的技術的替代方法。
要實作與瀏覽器無關的解決方案來攔截列印事件,請考慮使用 window.matchMedia API 和 window.onbeforeprint 或 window.onbeforeprint 的組合。印後。 window.matchMedia 可讓您偵測何時滿足特定的 CSS 媒體查詢(例如 print)。
以下是說明此方法的範例程式碼片段:
<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中文網其他相關文章!