크로스 브라우저 onbeforeprint() 및 onafterprint() 솔루션
웹 페이지가 다양한 브라우저에서 인쇄되는 시기를 감지하는 것이 어려웠습니다. 과거에는 통일된 접근 방식이 없었기 때문입니다. 전통적으로 Internet Explorer는 이 목적을 위해 onbeforeprint() 및 onafterprint() 이벤트를 제공했지만 다른 브라우저에는 이에 상응하는 기능이 부족했습니다. 그러나 최근의 발전으로 새로운 가능성이 도입되었습니다.
window.matchMedia 활용
이제 많은 최신 브라우저가 CSS 미디어 감지를 허용하는 window.matchMedia API를 지원합니다. 쿼리 변경. window.onbeforeprint/window.onafterprint와 함께 window.matchMedia를 사용하면 브라우저 간 솔루션을 구현할 수 있습니다.
다음 코드 조각은 구현을 보여줍니다.
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); }
이점 및 주의 사항
이 접근 방식은 인쇄 요청을 감지하기 위한 크로스 브라우저 솔루션을 제공합니다. 그러나 일부 브라우저에서는 beforePrint() 및 afterPrint()에 대한 여러 호출을 트리거하여 잠재적으로 바람직하지 않은 동작을 초래할 수 있다는 점에 유의해야 합니다. 따라서 인쇄 이벤트에 대한 처리 요구 사항을 신중하게 고려하는 것이 중요합니다.
추가 리소스
자세한 내용과 예시는 다음 외부 리소스를 참조하세요.
위 내용은 여러 브라우저에서 인쇄 요청을 안정적으로 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!