在我网站的一个页面上(用 php 编码),我正在尝试添加 2 个(甚至更多)打印按钮,每个按钮打印网页的一部分。例如,在一个页面上有一个包含一些值的表格和下面的 2 个图表。我想添加 2 个打印按钮,一个按钮打印表格,另一个按钮打印两个图表。我找到了这个示例,但无法清楚地理解。任何帮助或示例都会对我有所帮助。
提前致谢。
这是 html/javascript 代码,单击时将启动浏览器的打印对话框。
<button onClick="window.print()">Print this page</button>
如果您的表位于id ='printTable'的div内,请使用:
<a href="#null" onclick="printContent('printTable')">Click to print table</a>
编辑:这是函数“printContent()”
<script type="text/javascript">
<!--
function printContent(id){
str=document.getElementById(id).innerHTML
newwin=window.open('','printwin','left=100,top=100,width=400,height=400')
newwin.document.write('<HTML>\n<HEAD>\n')
newwin.document.write('<TITLE>Print Page</TITLE>\n')
newwin.document.write('<script>\n')
newwin.document.write('function chkstate(){\n')
newwin.document.write('if(document.readyState=="complete"){\n')
newwin.document.write('window.close()\n')
newwin.document.write('}\n')
newwin.document.write('else{\n')
newwin.document.write('setTimeout("chkstate()",2000)\n')
newwin.document.write('}\n')
newwin.document.write('}\n')
newwin.document.write('function print_win(){\n')
newwin.document.write('window.print();\n')
newwin.document.write('chkstate();\n')
newwin.document.write('}\n')
newwin.document.write('<\/script>\n')
newwin.document.write('</HEAD>\n')
newwin.document.write('<BODY onload="print_win()">\n')
newwin.document.write(str)
newwin.document.write('</BODY>\n')
newwin.document.write('</HTML>\n')
newwin.document.close()
}
//-->
</script>
一个简单的想法是临时创建一些以前的 css 打印规则,例如
.printtable * { display : none; }
.printtable table { display : block; }
和
.printtableandgraph * { display : none; }
.printtableandgraph img { display : block; }
那么这两个按钮应该在语句之前为 body 元素(或其他包含表格和图表的元素)添加一个.printtable
和一个类.printtableandgraph
window.print()
(如果用户在同一个打印按钮上单击两次或更多次,则之前检查元素是否已经设置了该类名)
打印按钮
<button onClick="window.print()">Print this page</button>`
使用此代码打印任何网页,只有一个回退它的打印所有按钮和菜单栏。
要打印页面的一部分,您可以使用 print.css 和打印按钮,这是一种快速简单的方法。
body {visibility:hidden;}
.print {visibility:visible;}
将 .print 类添加到页面的适当部分。
添加按钮:
<button onClick="window.print()">Print this page »</button>
打印结果整洁干净。