javascript:打开窗口并打印

时间:2013-09-05 10:24:21

标签: javascript jquery printing

我看过这个问题: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

1 个答案:

答案 0 :(得分:0)

您应尽可能提供完整的网址,否则会尝试使用相对网址。

var printWindow = window.open('', '', 'width=1000,height=700');会打开一个空白网址

var printWindow = window.open('print.aspx', '', 'width=1000,height=700');相对于当前网址打开 print.aspx 页面。因此,如果当前网址是 www.google.com ,则会打开 www.google.com/print.aspx ,这将找不到404页面。

请注意一些会重定向您的网站,这会让您感到困惑。例如,如果您在当前stackoverflow页面上运行它,它将打开此页面本身,因为 http://stackoverflow.com/questions/18633800/xxxxxx/print.aspx 将重定向到 http://stackoverflow.com/questions/18633800/xxxxxx

此外,jquery无法正常工作,因为您无法通过javascript将内容从一个窗口复制到另一个窗口。两者都是分开的,无法沟通。