我有一个网页有多个iFrame,例如6,我希望能够打印2这些帧作为一个调用,而不是抓取每个帧的contentWindow,然后调用:
parent.iFrame1.focus();
parent.iFrame1.print();
parent.iFrame2.focus();
parent.iFrame2.print();
因为它在浏览器的两个单独的打印预览窗口中打印内容。
我尝试了以下内容,但没有一个能真正给予我的需求或对我有效(即内容被截断)
有可能吗?还是我在白费力气?
我也试过从iframes抓取html并将其写入新文档,但感觉有点费力。此外,还有多个css和脚本文件等需要合并以呈现一个内聚的页面。
任何答案将不胜感激!
我尝试过但迄今为止尚未奏效的潜在解决方案:
Wait for html to write to window before calling window.print()
Print preview from multiple iframes?
https://graciesdad.wordpress.com/2007/04/19/all-in-one-printing-from-multiple-iframes/
Javascript Print iframe contents only
1条答案
按热度按时间oxf4rvwz1#
我会使用另一个iframe来完成这项工作。但那个iframe**必须在同一个域中。
在您的主页中(例如,mydomain/index.html)
printIframes()
函数接受一个要打印的外部页面的url数组。它创建了一个“不可见”的iframe(参见.iframe
css类),在查询字符串中加载print.html
和这些url:<iframe src="print.html?urls=http://example.com,http://example.com"></iframe>
如果您直接访问该iframe,您将看到以下内容:
在print.html中例如mydomain/print.html
此页对
urls
查询字符串进行解码,并为每个要加载的url创建一个iframe。范例
在此屏幕截图中,我加载了主页(index.html),并在开发人员控制台中调用了
printIframes()
函数:(您实际上不会看到它们)然后紧接着请求打印该iframe的内容。