我需要知道用户是否单击了
print
cancel
onafterprint
window.onafterprint = () => { // event should fire only if print button is clicked }
进入此页面并执行
Ctrl + p
save
alert
谁能解释一下吗?
afterprint 事件在关联文档开始打印或打印预览关闭后触发。 MDN
看来通过事件是无法得知的。该规范没有告诉用户代理区分打印或取消打印提示。尽管规范对于实际做什么非常模糊。 WHATWG 规格。
onafterprint 事件在页面开始打印或打印对话框关闭时发生。这就是为什么两个按钮都会触发事件的原因。
因此,无法知道用户是否单击了“保存”或“取消”。
不幸的是,window.print() 没有返回值,当您在打印对话框上单击“取消”或“打印”时,会触发 onafterprint 事件。唯一的方法是让用户亲自确认打印作业是否已发送到打印队列。