有一种方法可以通过监听"打印"更改来检查是否有人正在打印页面:
const mql = window.matchMedia('print');
mql.addEventListener('change', e => {
if (e.matches) console.log('Printing');
});
但是,如果window.Print((函数手动调用Print,则此操作不起作用。还有办法抓住它吗?
在调用真正的打印函数之前,您可以简单地将print
函数覆盖为执行您的出价的函数
{
const realPrint = window.print;
window.print = ()=>{
console.log("printing");
realPrint();
}
}
(通过在块中使用const
变量,我们可以避免将realPrint
泄漏到外部范围中。(