我有一个库组件,它使用当前窗口大小来确定库项目的大小.我还挂钩了窗口调整大小事件,以便在调整窗口大小时正确调整图库项目的大小.
在Chrome中,如果用户随后打印图库,则不会调整项目的大小以适合打印的页面.相反,他们只是使用为窗口大小计算的最后一个大小.即使在打印选项中从纵向切换到横向也是如此.
在打开打印对话框和页面布局从纵向切换到横向时,有没有办法强制对重新渲染组件做出反应?我认为打印对话框会重新呈现具有新尺寸的页面,但似乎并非如此.
打印页面时,浏览器会拍摄当前DOM的快照并应用print媒体样式.您的问题是DOM上的元素取决于屏幕的尺寸.
窗口调整大小事件将有助于在用户调整屏幕大小时重新排列组件,但在用户打印时不会触发它们.但是,有些方法可以在用户打印页面时收听事件.
window.onbeforeprint将在用户打印页面时触发.在事件上,您可以调整屏幕大小以使窗口调整大小事件触发器或以其他方式重新呈现组件.虽然看看这个stackoverflow帖子,但它不支持chrome ,它解释了如何使用它window.matchMedia('print').
最好依赖于css媒体查询,而不是依赖于屏幕尺寸和调整事件大小,但有时这并不总是可行的.
| 归档时间: |
|
| 查看次数: |
9731 次 |
| 最近记录: |