【问题标题】:ONAFTERPRINT event fires on the wrong buttonONAFTERPRINT 事件在错误的按钮上触发
【发布时间】:2020-08-31 21:11:43
【问题描述】:

我需要知道用户是否点击了printcancel 按钮,但如果点击其中任何一个按钮就会触发onafterprint 事件,为什么??

window.onafterprint = () => {

    // event should fire only if print button is clicked

}

输入此page 并执行Ctrl + p 尝试cancelprintsave 文档并观看alert

谁能解释一下?

【问题讨论】:

    标签: javascript google-chrome


    【解决方案1】:

    在相关文档开始打印或打印预览关闭后触发 afterprint 事件。 MDN

    看来你不能通过事件知道。该规范没有告诉用户代理区分打印或取消打印提示。尽管规范对实际执行的操作非常模糊。 WHATWG Spec.

    【讨论】:

    • 有没有其他方法可以知道,或者我需要用 C-sharp 开发应用程序?
    • 恐怕没有已知的解决方案。
    • 那么开发 WEB 应用程序的人如何确定他们的用户实际上是在打印发票或任何其他带有动态数据的文档?一定有人知道答案。
    • 见上面的评论。另请参阅 thisthisthis 的帖子都得出相同的结论。
    【解决方案2】:

    onafterprint 事件在页面开始打印或打印对话框已关闭时发生。这就是使用两个按钮触发事件的原因。

    所以,没有办法知道用户是点击了保存还是取消。

    【讨论】:

    • 你觉得没问题吗?快到 2021 年了,我不知道用户是否点击了按钮?
    猜你喜欢
    • 2012-01-25
    • 2013-05-11
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多