代码如下
function Preview( oper ) //参数为第几个打印块
{
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; //设置当前画面的内容为要打印的内容, 从而不需打印的部分就没了
//添加一个打印必备的js控件
var WebBrowser = '<OBJECT ID="WB" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 
document.body.all.WB.execwb( 7, 1 ); //打印预览
window.document.body.innerHTML = bdhtml; //将原来画面还原回去
}
打印按钮中的onclick事件自不用说, 在需要打印的部分开头加上<!--startprint1-->, 结尾加上<!--endprint1-->. (其中"1"为要打印的区块, 是跟按钮事件中的参数一致的)
缺欠就是每当点击打印的时候, 首先会看到画面的变化(变成只剩下要打印的部分), 感觉这样用户体验不是很好.
还有一种方法就是将不需要打印的地方都应用@media.print的一个dispaly: none的样式, 这样无形中加大了太多工作量了.
哪位要是有更好的解决方案麻烦留个言, 让小弟也学习学习. 不尽感激.
本文介绍了一种使用JavaScript实现网页部分区域打印的方法,通过设置特定的注释标记来定义打印范围,并提供了一个示例代码。此外,文章还讨论了用户体验的问题及改进方案。
1035

被折叠的 条评论
为什么被折叠?



