- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个 iFrame 的网页,例如6我希望能够在一次调用中打印其中 2 个帧,而不是获取每个帧的 contentWindow 然后调用:
parent.iFrame1.focus();
parent.iFrame1.print();
parent.iFrame2.focus();
parent.iFrame2.print();
因为它在浏览器中的两个单独的打印预览窗口中打印内容。
我尝试了以下方法,但没有一个真正能给我我正在寻找的东西或为我工作(即内容被 chop )
是否有可能做到或者我已经死马了?
我也尝试过从 iframe 中获取 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/
最佳答案
我会使用另一个 iframe 来完成这项工作。不过,该 iframe 必须位于同一域中。
在您的主页(例如 mydomain/index.html)
<html>
<head>
<style>
.print {
visibility: hidden;
}
</style>
</head>
<body>
<script>
function printIframes(urls) {
var iframe = document.createElement('iframe');
iframe.className = "print";
iframe.src = `print.html?urls=${encodeURIComponent(urls.join(','))}`;
iframe.onload = function () {
this.contentWindow.focus();
this.contentWindow.print();
};
document.body.appendChild(iframe);
}
</script>
</body>
</html>
printIframes()
函数接受要打印的外部页面的 url 数组。它创建一个加载 .iframe
的“不可见” iframe(参见 print.html
css 类)。查询字符串中包含这些 url:
<iframe src="print.html?urls=http://example.com,http://example.com"></iframe>
如果您直接访问该 iframe,您将看到以下内容:
<小时/>在 print.html 例如mydomain/print.html
此页面解码urls
查询字符串并为每个要加载的网址创建一个 iframe。
<html>
<body>
<script>
var urls = document.location.search.split('=')[1];
urls = decodeURIComponent(urls);
urls = urls.split(',');
urls.forEach(url => {
var iframe = document.createElement('iframe');
iframe.src = url;
document.body.appendChild(iframe)
});
</script>
</body>
</html>
<小时/>
示例
在此屏幕截图中,我加载主页 (index.html),并在开发人员控制台中调用 printIframes()
函数:(你实际上不会看到它们)
紧接着是打印该 iframe 内容的请求。
关于javascript - 在 iFrame 中将两个 contentWindows 作为一个打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53456976/
考虑如下 HTML 文档 Furtheron 考虑如下 JavaScript document.addEventListener( 'DOMContentLoaded', function ( e
function getDef() { document.getElementById("defCanvas").innerHTML=document.getElementById("inv
我在 www.domain.com 上有一个页面,在 sub.domain.com 上有另一个页面。 sub.domain.com 将显示在 iframe 中的 www.domain.com 上。我试
我有一个像这样的 HTML 对象元素: Error: could not embed search results. 我还有这个 javascript 函数(添加了alert()调用以进行调试):
我正在尝试将 hotmail 安装到我的 mailto 处理程序: 这是通过网页范围内的代码完成的: navigator.registerProtocolHandler('mailto','http:
我的 javascript 有一个问题,就是根据内容调整 iFrame 的大小。我让它在其他地方工作,但对于这个例子,它抛出了一个错误。使用以下代码,body 为 null,因此无法获取 scroll
当我尝试我的代码时: Testing.html - function find() { var iframeEl = document.getElementById('love'); if ( if
我正在使用一些遗留代码,并且正在寻找一种安全的方法来处理以下情况: 我有一个显示产品选择页面的 iframe。我需要向此 iframe 传递带有查询字符串的回调函数的名称。 在 iframe 中,我从
我发现我可以通过 file:// 上的页面和远程主机上托管的 iframe 使用 iframe 的 contentWindow 属性进行跨域通信。 例如,在设备上,我在 url 文件中有一个 html
我使用以下代码动态创建一个 iframe。 var iframe_jquery = $("") .addClass("foo") .appendTo(container); // co
我正在尝试使用 React.js 制作一个富文本编辑器,我正在使用 iframe 并将 designMode 属性设置为“ON”。我想在单击按钮时将所选文本设为粗体。我想使用 execCommand(
我有一个包含多个 iFrame 的网页,例如6我希望能够在一次调用中打印其中 2 个帧,而不是获取每个帧的 contentWindow 然后调用: parent.iFrame1.focus(); pa
我想设置 iframe 的高度与其内容相匹配。但是即使将 iframe.contentWindow 放入 .load() 中,它也会返回 undefined。这是代码: $(document).rea
这是有问题的javascript代码 var tmpIframe, url; url = "http://local.custom.com:10000/simple.html"; tmpIframe
我正在使用这段代码,它源于 here和 here . $('#my_button').on('click', function (e) { var iframe = document.crea
这是我目前为止所拥有的,使用这篇文章: Make iframe automatically adjust height according to the contents without using
我正在尝试修改我访问权限有限的网站上的一些 CSS。我已被允许在服务器上创建页面,但无法修改网站上其他 PHP 生成的页面。 我正在探索将 CSS 注入(inject) iframe 中。我首先隐藏
我试图在以下代码中访问 iframe 的 contentDocument 和 contentWindow。但它们都是空的。 var iframe = document.createElemen
如何在 Chrome 中调用以下内容? iframe.contentWindow.document 最佳答案 Chrome 实际上支持 iframe.contentWindow.document,但是
我正在尝试调试 iframe 的 contentWindow,但每次我尝试在 chrome 59 上查看 contentWindow 对象时dev-tools 页面崩溃。 将 contentWindo
我是一名优秀的程序员,十分优秀!