>  기사  >  데이터 베이스  >  여러 브라우저에서 인쇄 요청을 안정적으로 감지하는 방법은 무엇입니까?

여러 브라우저에서 인쇄 요청을 안정적으로 감지하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-02 14:05:30902검색

How to Reliably Detect Print Requests Across Multiple Browsers?

크로스 브라우저 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()에 대한 여러 호출을 트리거하여 잠재적으로 바람직하지 않은 동작을 초래할 수 있다는 점에 유의해야 합니다. 따라서 인쇄 이벤트에 대한 처리 요구 사항을 신중하게 고려하는 것이 중요합니다.

추가 리소스

자세한 내용과 예시는 다음 외부 리소스를 참조하세요.

  • [JavaScript로 인쇄 요청 감지](http://tjvantoll.com/2012/06/15/Detecting-print-requests-with-javascript/)

위 내용은 여러 브라우저에서 인쇄 요청을 안정적으로 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.