在点击打印按钮时,跳出打印的预览界面,此时点击取消打印。我们需要做一些事情,比如页面样式的改动,页面标题的还原(document.title)。需要用到onPrintDialogClose的回调方法。我们直接加上去是不执行或者需要来回切换页面(让页面重新聚焦)才会执行onPrintDialogClose的方法。
解决:我们要借助window.dispatchEvent的方法来触发事件。这里不是使用自定义事件,而是new一个新的聚焦事件。然后在回调中取消这个计时器。
我的理解就是(打印预览界面出来后按了取消按钮,此时页面没用聚焦回来。所以没用执行onPrintDialogClose函数。我只需要在点击打印按钮时,利用定时器不断执行window.dispatchEvent来触发聚焦事件,这样我的页面是一直聚焦状态的,然后在回调函数中清楚定时器即可。)
解答有限,有更好的解释望大家不惜精力,帮助我更好理解。谢谢!