【问题标题】:Wait for window.onbeforeprint to finish DOM manipulation before print preview在打印预览之前等待 window.onbeforeprint 完成 DOM 操作
【发布时间】:2021-11-26 18:31:18
【问题描述】:

根据official docs window.onbeforeprint 允许[s] 页面在打印开始之前更改其内容(例如,可能删除横幅)。

但是,这在我的情况下不起作用,因为 window.onbeforeprint 是异步触发的——就像 JS 中的任何事件一样。我确实在我的事件处理程序中更改了 DOM 内容,但这些更改不在打印预览中。只有当我取消第一次打印尝试并再次点击 Cmd+P 时,DOM 内的(第一个事件的)更改是打印预览的一部分。

我不是在谈论长时间运行的进程,比如从网上获取一些东西。只需在 DOM 中进行简单的复制/粘贴。

所以我想知道我在这里做错了什么,或者window.onbeforeprint 在打印之前更改内容是否毫无意义。

【问题讨论】:

    标签: javascript printing event-handling dom-events


    【解决方案1】:

    经过一些额外的故障排除后,我可以确认,window.onbeforeprint 实际上允许在生成打印视图之前进行 DOM 操作。我的问题是框架:Vue.js。 Vue 组件没有及时更新。如果我直接在事件处理程序中操作 DOM,它就可以工作。

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 2020-02-08
      • 2019-03-12
      • 1970-01-01
      • 2015-04-24
      • 2017-02-15
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多