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

Asp.net 如何在不打开弹出窗口的情况下打印网页?,asp.net,javascript,Asp.net,Javascript,我想用JavaScript打印一个网页。但是我不想以弹出窗口的形式打开页面。如何使用JavaScript window.print方法直接打印像“mypage.aspx”这样的网页,而不将其作为弹出窗口打开 此外,条件是“我不想为此使用任何ActiveX” 以下是我想尝试的: var printWindow, printData; printWindow = window.open("", "printVersion", "menubar,scrollbars,width=640,height=

我想用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();  

印刷品
我被打印出来了


确保
all.css
位于顶部,而
print.css
位于底部,它应该可以工作。

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

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

您可以只使用CSS打印样式表,而不必完全使用javascript—用户只需打印页面即可。e、 g

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

最简单的解决方案是将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>
打印
函数printPage()
{
var div=document.getElementById(“printerDiv”);
div.innerHTML='';
}

在网页中调用window.print有什么问题?当然,调用这个没有问题,但是在调用这个之前,我必须打开一个我不想打开的窗口。下面是一个场景:我有一个page1.aspx页面,现在我生成了一些输出,它在page2.aspx中,现在我如何在不打开相同页面的情况下打印page2.aspx?Gaurav,调用window.print(),正如Rosdi首先建议的,不会打开弹出窗口。它将打开一个打印选项对话框,这不是一个弹出窗口,也不是您可以阻止的。此窗口是必需的,用户可以选择打印到哪台打印机、纸张大小等。对不起,朋友们,我认为我的话有些含糊不清,下面是我想尝试的:[code]var printWindow,printData;printWindow=window.open(“,“printVersion”,“菜单栏,滚动条,宽度=640,高度=480,顶部=0,左侧=0”);printData=document.getElementById(“lblReport”).innerHTML;printWindow.document.write(打印数据);printWindow.document.close();printWindow.print();[/code]Gaurav,你可以编辑你的原始问题,粘贴到那里。我已经做了所有的事情,请先检查我的问题并发表评论,然后提出一些解决方案。Gaurav,你正在从志愿者社区获得免费帮助。责骂他们你不喜欢的答案并不是鼓励他们花时间帮助你的好方法…@Gaurav,我重写了答案,包括一个完整的工作html示例,希望它能有所帮助。嘿,伙计们,我真的很抱歉,如果你们觉得我的话太苛刻,我不想强迫任何人回答。我只是在寻找解决方案。我想Gaurav想要的是页面在没有用户交互的情况下自动打印?然后在body onLoad中调用window.print()。你也帮我解决了这个问题,谢谢你的代码片段!它应该可以工作,请查看错误控制台,可能存在js错误,请检查。
<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>