如何捕获window.print()函数调用



有一种方法可以通过监听"打印"更改来检查是否有人正在打印页面:

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泄漏到外部范围中。(

最新更新