1. onbeforeprint, onafterprint 이벤트 핸들러
프린트가 요청될 때 IE와 Edge 그리고 Firefox(> 5)에서는 onbeforeprint, onafterprint 이벤트를 발생시킵니다.
이 이벤트를 처리할 이벤트 핸들러를 구현하여 프린트 전/후에 대한 처리를 할 수 있습니다.
window.onbeforeprint = function() {
console.log('프린트 전 호출');
};
window.onafterprint = function() {
console.log('프린트 후 호출');
};
IE와 Edge 그리고 Firefox에서는 onbeforeprint와 onafterprint 이벤트 핸들러를 이용하면 되지만 크롬과 사파리, 오페라등 타 브라우저에선 이 이벤트 핸들러를 지원하지 않습니다. 타 브라우저에서 onbeforeprint, onafterprint와 같은 기능을 구현하기 위해서는 window.matchMedia를 사용하면 됩니다.
window.matchMedia는 IE(>9)버전을 포함한 모든 브라우저를 지원합니다.
2. window.matchMedia
if (window.matchMedia) {
var mQuery = window.matchMedia('print');
mQuery.addListener(function(mql) {
if (mql.matches) {
console.log('프린트 전 호출');
}else {
console.log('프린트 후 호출');
}
});
}
window.matchMedia은 자바스크립트를 이용해 CSS에 접근하여 미디어쿼리의 일치 여부를 반환하는 기능을 하며
자세한 설명은 MDN API문서를 참조 바랍니다.
3. Cross Browser
var beforePrint = function() {
console.log('프린트 전 호출');
};
var afterPrint = function() {
console.log('프린트 후 호출');
};
if (window.matchMedia) {
var mQuery = window.matchMedia('print');
mQuery.addListener(function(mql) {
if (mql.matches) {
beforePrint();
}
else {
afterPrint();
}
});
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
'DEV > Javascript' 카테고리의 다른 글
첫일 말일 구하기 (0) | 2017.09.07 |
---|---|
문자를 유니코드로 변환하기 (0) | 2017.03.20 |
[Javascript]주차를 가져오자 (0) | 2017.03.15 |
[Javascript]Array를 n개씩 나누기 (5) | 2017.03.15 |
[Javascript]뒤로가기 이벤트 발생시 자바스크립트 실행하기 (1) | 2017.03.15 |