onafterprint在iframe内停止工作



下面的onafterprint回调在一个简单的常规页面上执行得很好。

<script type="text/javascript">
window.onafterprint = function(e) {
console.log(['label onafterprint', e]);
}
</script>

当我将该页放入iframe,并从父页内手动运行iframe.contentWindow.print()时,打印对话框正确显示,但它不再启动onafterprint。但是,当我打印整个实际的父页面(包括有问题的iframe,以及更多)时,iframe的onafterprint确实为每个iframe触发(这是预期的行为),因此必须正确配置和附加回调。

但是我如何使iframe火自己的onafterprint当我打印那个iframe?我在一个页面上有几个显示文档预览的iframe,我需要这个回调分别对每个iframe触发。

我研究了什么:

  • matchMedia似乎过于复杂,不跨浏览器兼容
  • 这不是一个调用.print()太早的问题,因为在我的情况下,它被称为一个按钮点击

请帮忙!

事实证明,它仍然是那些"太快"的情况之一,但不像.print()在链接的答案,在我的情况下,iframe本身加载太快。只要我手动加载帧,它就能正常工作。仍然在调查

最新更新