如何在不显示浏览器窗口的情况下使用JavaScript打开和打印浏览器窗口的内容?

时间:2011-07-30 10:49:06

标签: javascript

我使用以下JavaScript代码打印<div>。我在按钮点击时调用了printit()函数。当函数运行时,我得到两个窗口。一个是显示打印选项,在后台有一个预览窗口,显示该功能创建的<div>的数据。

我想排除那个背景窗口。我该怎么办?

<script>
function printit() 
{
    var DocumentContainer = document.getElementById('printthis');
    var WindowObject = window.open('', 'PrintWindow', 'width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes');
    WindowObject.document.writeln(DocumentContainer.innerHTML);
    WindowObject.document.close();
    WindowObject.focus();
    WindowObject.print();
    WindowObject.close();
}
</script>

3 个答案:

答案 0 :(得分:2)

如果您愿意,可以创建一个隐藏的iframe,将文档写入其中,然后在其窗口对象上调用print函数,而不是创建一个无法隐藏的窗口。

答案 1 :(得分:1)

你不能用当前的方法做到这一点。这是您在函数中创建的窗口。如果您没有该窗口,则无法打印任何内容。

另一种方法是使用媒体CSS。您可以使用CSS打印,隐藏打印输出中不需要的所有内容。这样您就可以打印当前窗口而不是创建新窗口。

答案 2 :(得分:0)

你做不到。使用JavaScript创建新的浏览器窗口时,无法使其不可见。 (你可以想象为什么:我在互联网上访问一个随机的网站,它在我的电脑上创建了一个看不见的浏览器窗口?不,谢谢!)

我建议您在窗口显示时感到高兴。为什么用户不应该看到正在打印的内容?