print.js的onPrintDialogClose事件触发失效
今天在项目中遇到了,需要给打印添加loading事件。添加之后出现onPrintDialogClose不触发,当在控制台点击后,再点击页面,才会触发onPrintDialogClose事件,关闭loading。
解决方案:
在打印事件触发之前,添加派发一个focus聚焦事件,然后点击取消或打印,清除focus事件。
//关键代码
const focuser = setInterval(() => window.dispatchEvent(new Event('focus')), 500);
printJS({
printable: 'SamplingDataCollectionPrintArea',
type: 'html',
scanStyles: false,
css: ['/assets/print-style/lowcode-print.css'],
style: css,
//打印完成或关闭打印的事件
onPrintDialogClose: () => {
//清除focus事件
clearInterval(focuser);
}
});