【发布时间】:2013-09-05 10:24:20
【问题描述】:
我看过这个问题:js window.open then print(),它工作得很好。我面临的挑战是我有很多样式想要保留在打开的打印窗口中。我试过改变
var printWindow = window.open('', '', 'width=1000,height=700');
到
var printWindow = window.open('print.aspx', '', 'width=1000,height=700');
然后像这样使用jQuery:
$("#print", printWindow.document).html($("#tabContainer").html());
但我打开的窗口不包含实际 print.aspx 文件中的任何内容。
谁能解释一下出了什么问题?
编辑: 这很奇怪(至少对我来说)......我的 print.aspx 有这个:
<body >
<div id="print">print content here...</div>
</body>
并且从我的调用页面这有效(返回 1):
alert(printWindow.document.getElementsByTagName('body').length);
但是将 'body' 更改为 'div' 会使其“失败”返回 0
【问题讨论】:
-
第二个对我来说看起来不错。当您手动浏览到
print.aspx时会发生什么? -
不幸的是,服务器已关闭。当他们恢复时会更新:-/
-
好的,我确实打开了实际的 Print.aspx,但我无法从调用页面访问 Print.aspx 页面中 id="print" 的 div 标签...
-
如果div标签是动态添加到你原来的页面的,那么新打开的窗口就不会显示。
-
div标签不是动态添加的。它是 Print.aspx 文件的一部分。
标签: javascript jquery printing