问题:
我有一个应用程序将来自其他服务器的内容加载到<iframe>
。用户希望能够在iframe中打印内容,有时可能会很长并导致iframe滚动。打印时,仅打印iframe视口中显示的区域。剩下的就被切断了。
我尝试了什么:
使用@media print
样式,我可以隐藏页面上的所有其他元素,并将iframe扩展为100%的宽度和高度。我不能做的事情AFAICT将其调整为实际内容的w / h(仅使用CSS),因此如果100%不够,则内容将被截断。
我知道这可以通过javascript解决,但是浏览器不能始终为file-&gt; print提供事件挂钩,因此我无法在需要时运行javascript。
我可以制作一个自定义的“打印”按钮,这样JS就可以运行并且iframe会被正确打印,但是它不允许“打印预览”,因为浏览器没有为此提供JS方法
我在这里难过,有答案吗?
答案 0 :(得分:0)
如果您想打印iframe的内容,可以使用
document.getElementById('ifr1').contentWindow.print()
这会在iframe的内容上调用print()
(而不是容器窗口)。