繁体   English   中英

如何在不打开弹出窗口的情况下打印网页?

[英]How to print a web page without opening a popup window?

我想使用JavaScript打印网页。 但我不想打开页面作为弹出窗口。 如何使用JavaScript window.print方法直接打印像'mypage.aspx'这样的网页而不将其打开为弹出窗口?

条件是'我不想为此使用任何ActiveX'

这是我想要尝试的:

var printWindow, printData; printWindow = window.open("", "printVersion", "menubar,scrollbars,width=640,height=480,top=0,left=0");

printData=document.getElementById("lblReport").innerHTML; printWindow.document.write(printData); 
printWindow.document.close(); 
printWindow.print();  

最简单的解决方案是将mypage.aspx的内容加载到iframe,然后在iframes onload事件上调用window.print。

<button onclick="printPage()">print</button>
<div id="printerDiv" style="display:none"></div>
<script>
   function printPage()
   {
      var div = document.getElementById("printerDiv");
      div.innerHTML = '<iframe src="mypage.aspx" onload="this.contentWindow.print();"></iframe>';
   }
</script>
<html>
    <head>
        <title>Print</title>
        <link rel="stylesheet" type="text/css" media="all" href="all.css" />
        <link rel="stylesheet" type="text/css" media="print" href="print.css" />
    </head>
<body>
    <p>I get printed</p>
    <form>
        <input type="button" onclick="window.print()" value="Print" />
    </form>
</body>
</html>

确保all.css是在顶部和print.css在底部,它应该工作。

不确定它是否有效,但您可以尝试创建不可见的iframe ,在其中加载page2.aspx然后打印它。

嗯。 只需使用window.print(); 直接在页面上。 它本身不会打开一个新窗口(除了打印属性窗口以设置打印选项)。

您可以使用CSS打印样式表并避免完全使用javascript - 用户必须执行这些操作才能打印页面。 例如

<link rel="stylesheet" type="text/css" media="print" href="print.css" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM