是否可以在不加载html页面的情况下直接使用JavaScript进行打印过程?

时间:2011-10-25 21:10:13

标签: javascript ajax printing

我的意思是:用户点击一些“打印”按钮并打印机开始打印。这可能吗?

请注意已经存在的服务器进程(通过AJAX)可以返回打印成功(或显示的html,无论如何)或错误以显示警报。那不是问题。

编辑:

经过一些快速评论(谢谢!)我的意思是“打开打印对话框”而不是“开始打印”

2 个答案:

答案 0 :(得分:2)

您已有HTML页面;按钮所在的那个。您可以使用media asttribute或@media指令为屏幕和打印机的页面设置不同的样式表。您可以在打印页面时使用不同的外观和布局,或者甚至可以使用完全不同的元素集。

示例:

#PrintContent { display: none; }

@media print {

   #RegularContent { display: none; }
   #PrintContent { display: block; }

}

要让按钮打印页面,只需使用print方法:

<input type="button" onclick="window.print();" value="Print me!" />

这当然不仅仅是开始打印,而是打开打印对话框。要在没有该对话框的情况下打印某些内容,您需要在浏览器中运行一个组件,但启动该组件需要用户确认,因此您无论如何都会得到一个对话框,而且会更加令人生畏。

答案 1 :(得分:0)

我会打开一个新页面,显示服务器上的打印HTML并从其onload处理程序中调用window.print()