针对不同打印按钮的特殊打印样式,具有印后删除功能
Special print style for different print buttons with after-print removal
我正在处理一个页面,该页面的底部将有一个区域,列出具有几个不同选项卡级别的常见问题解答分组,然后是可以由用户展开/折叠的问题。 我们希望为用户提供一种能够很好地打印的方法
- 只是他们扩展的问题/答案
- 他们选择的子组中的所有问题/答案
- 他们选择的主要组中的所有问题/答案
- 页面上的所有问题/答案
计划是有一个带有打印按钮(Javascript未隐藏)的下拉框,该下拉框将应用一个类,单击该类时将隐藏页面上的其他内容,并为我们提供用户所选选项所需的显示。 这一切都很容易做到,当禁用javascript时,我们可以使用#4应用默认打印样式作为捕获全部,这可以通过正常的打印机制触发。
问题是如何在打印完成后删除该特殊样式,以便如果用户要去单击浏览器打印按钮,他们会得到他们期望的整个页面的打印,而不是最后选择的"特殊"打印视图。
我已经想出了一些潜在的解决方案,但我对其中任何一个都不完全满意:
- 我们可以将我们计划的页面打印替换为指向另一个页面的链接,该页面在不干扰其余页面内容的情况下格式化自身。 我不喜欢这个想法,因为它将页面分解成碎片,如果可能的话,我总是更喜欢将用户留在页面上。
- 我们可以设置一个超时,当单击打印按钮以在一段时间后删除我们的特殊类,使页面恢复到默认状态。 我不喜欢这样,因为从用户的角度来看,它会产生不可预测的行为。 如果他们第一次打印"太长时间",他们就没有得到他们想要的风格。 如果他们在特殊打印后"太快"打印整个页面,他们会得到一个奇怪的结果
- 我们可以在 IE 中使用 after-print 触发器来删除这些用户的样式,但据我所知,这种解决方案只是 IE 中的一个选项,并使所有其他浏览器处于冷状态。
- 我们可以做一个一般的假设,即用户不太可能来到页面并进行特殊格式的打印,然后希望打印整个页面,然后 就这样。
还有其他解决方案可以想到吗?
如果你使用target="_blank"
,你的第一个解决方案实际上非常好。这将使用户保持在页面上,但避免所有其他问题。
但是,我认为如果您使页面布局与下拉列表匹配,整个问题就没有意义了。换句话说,如果他们正在查看第 2 节、第 3 小节、问题 1,并且他们选择"打印小节中的所有问题",只需展开小节并打开打印对话框。然后你只需要担心设置一个类(noprint
)并将其应用于其他所有内容。
相关文章:
- jQuery/JavaScript在线公文包表单-打印样式表
- 在 CTRL+P 和单击按钮时打印样式不同
- 如何将@media打印样式应用于 ckeditor 实例
- 在打印 html 内容中添加外部样式表引用后,打印预览为空白
- Javascript-在window.print()之前动态切换打印样式表
- JavaScript@media打印样式表不工作
- 使用javascript样式打印页面
- 页面样式未反映在使用Impact/Dot Matrix打印机的实际打印中
- CSS如何像打印预览一样设计HTML页面的样式
- 媒体打印;t在chrome上应用样式,但在firefox中效果完美
- 如何在HTML中以列表样式(方形,圆形等)在一行中打印列表
- 打印样式表不影响使用javascript
- 使用jquery更改打印样式(横向,纵向)
- 单击按钮后更改打印样式
- 附加样式表链接,用于打印触发jQuery的click()事件
- 打印样式表不工作
- 显示带有打印样式的网页
- 一个文档中针对不同DIV的多种打印样式
- 使用Javascript在不影响打印样式的情况下更改显示样式(CSS)
- 针对不同打印按钮的特殊打印样式,具有印后删除功能