多くのブラウザ
window.matchMedia
をサポートするようになりました
。このAPIを使用すると、CSSメディアクエリが有効になるタイミングを検出できます(画面の回転やドキュメントの印刷など)。クロスブラウザアプローチの場合は、window.matchMedia
を組み合わせます window.onbeforeprint
を使用 /window.onafterprint
。
次の場合、beforePrint()
が複数回呼び出される可能性があります およびafterPrint()
(たとえば、 Chromeは、印刷プレビューが再生成されるたびにリスナーを起動します
)。これは、印刷に応じて実行している特定の処理に応じて、望ましい場合と望ましくない場合があります。
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);
}
詳細: http://tjvantoll.com/2012/ 06/15 / Detection-print-requests-with-javascript /