以前用户在打印网页内容时,一般直接选择IE的打印功能就行。有的WEB页面上也有“打印此文档”的链接功能,引用的也是“window.print();”,类似于手工打印页面。
一般我们用到网页的打印,都仅对页面上的主要内容感兴趣,一些相关的广告图片、无用的文字信息等都可以排除。如果需要实现这样的效果,则使用上面的方法肯定是不可取的。上次我在写域名查询的时候,使用了XML,同时处理查询反馈信息是进行截取的方法,即仅对有用处的信息进行读取。其实网上那些所谓的“小偷程序”也是这样的原理。借助这样的思路,我尝试着对网页打印也进行“截取”处理一下了。当然,也是针对网页的HTML源代码进行操作了,方法如下:
1、在页面的代码头部处加入JavaScript:
<script language=javascript>
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>
2、在页面正文处加上<!--startprint-->与<!--endprint-->标识。也就是在需要用户打印保存的正文所对应的html处附加上。
3、截取内容部分已完成,现在加个“打印”的链接:<a href="javascript:;" onClick="doPrint()">打印教程</a>
当然,如果直接手工让浏览器打印的话,这个功能是根本不会实现的。
这样,效果就完成。我也仅仅提供了一个思路,因为家中未装打印机,所以未尝试。如果你们在实际使用中发现有问题,希望给予指正了。