Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to trigger javascript function when select print preview

I use rangeslider to create a slider component, it looks like belowenter image description here

However, when I ready for print this, in print preview, the slider bar has scale in while slider button position value keep same with the value in html(In html, when window resize, there is a js function to re-calculate the size of bar and postion of slider button).

slider in print preview: enter image description here

So my question is, how to call function to re-calculate slider button postion in print preview, like window.resize event.

Appreciate for any comment!!

like image 935
Daniel Avatar asked Jun 04 '26 00:06

Daniel


1 Answers

To detect print requests with javascript you can try:

var beforePrintFunc = function() {
    ...
}
//for chrome
window.matchMedia('print').addListener(function(mql) {
    if (mql.matches) {
        beforePrintFunc();
    }
});

window.onbeforeprint = beforePrintFunc;

To detect after print preview event:

var afterPrintFunc = function() {
    ...
}
//for chrome
window.matchMedia('print').addListener(function(mql) {
    if (!mql.matches) {
        afterPrintFunc();
    }
});
window.onafterprint = afterPrintFunc;

However, there may be an easier approach as pointed out by @torazaburo in the comment below as long as you are only making styling changes:

@media print {
    //your print specific styles go here
}
like image 124
Moishe Lipsker Avatar answered Jun 06 '26 13:06

Moishe Lipsker



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!