当用户选择文件 - >打印时,仅打印iframe的内容

时间:2016-10-10 18:33:29

标签: javascript html css iframe printing

问题:

我有一个应用程序将来自其他服务器的内容加载到<iframe>。用户希望能够在iframe中打印内容,有时可能会很长并导致iframe滚动。打印时,仅打印iframe视口中显示的区域。剩下的就被切断了。

我尝试了什么:

使用@media print样式,我可以隐藏页面上的所有其他元素,并将iframe扩展为100%的宽度和高度。我不能做的事情AFAICT将其调整为实际内容的w / h(仅使用CSS),因此如果100%不够,则内容将被截断。

我知道这可以通过javascript解决,但是浏览器不能始终为file-&gt; print提供事件挂钩,因此我无法在需要时运行javascript。

我可以制作一个自定义的“打印”按钮,这样JS就可以运行并且iframe会被正确打印,但是它不允许“打印预览”,因为浏览器没有为此提供JS方法

我在这里难过,有答案吗?

1 个答案:

答案 0 :(得分:0)

如果您想打印iframe的内容,可以使用

document.getElementById('ifr1').contentWindow.print()

这会在iframe的内容上调用print()(而不是容器窗口)。