正常情况下的打印是使用 window.print(); 直接整页打印,但如果需要打印网页中定义的部分内容,则可使用如下的方法:
以下是代码片段:
// JS 实现简单的页面局部打印
<script>
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
}
</script>
亦可以添加变量,同页面多次区别使用:
<script>
function preview(oper) {
if (oper < 10) {
bdhtml=window.document.body.innerHTML; //获取当前页的html代码
sprnstr="<!--startprint"+oper+"-->"; //设置打印开始区域
eprnstr="<!--endprint"+oper+"-->"; //设置打印结束区域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //从结束代码向前取html
window.document.body.innerHTML=prnhtml;
window.print();
window.document.body.innerHTML=bdhtml;
} else {
window.print();
}
}
</script>
使用很简单 将页面内要打印的内容加入中间 <!--startprint1--> 内容 <!--endprint1-->
再加个打印按纽 onclick=preview(1);
<!--startprint--> 与 <!--endprint--> 标识。也就是在需要用户打印保存的正文所对应的html处附加上。同时,如果采用小偷程序获得远程数据并需打印,可将此等数据置于该定义标签之内即可。
以下是代码片段:局部打印
<a href="javascript:void(0);" onClick="doPrint()">局部打印</a>
当然你也可以使用 print.css 来做打印样式,通过css 控制在打印媒体中的页面表现样式!
实践出真知