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

How can I open, and print the contents of, a browser window using JavaScript without showing the browser window?

本文关键字:窗口 浏览器 打印 JavaScript 显示 情况下      更新时间:2023-09-26

我使用以下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>

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

当前的方法无法做到这一点。这是你在函数中创建的窗口。如果你没有那个窗口,你就没有任何东西可以打印。

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

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

我建议你对橱窗展示感到高兴。为什么用户不能看到打印的内容?