js调用浏览器“打印”与“打印预览”
用到html <object>标签,具体做法如下:
1、在html文档任意位置添加<object>标签:
<div style="border: 1px solid #000; height:40px;width:100%" class="noprint"> ... <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="0"></OBJECT> ... </div>
2、添加两个按钮:“打印”、“打印预览”,只是为了方便测试,可以添加任意个:
<a id="lkprint" onclick="printhtml();" sytle="height:20px">打印</a> <a id="lkprintPreview" onclick="printpreview();" style="height:20px">打印预览</a>
3、实现以上两个按钮的onclick事件:
// 打印预览 function printpreview() { wb.execwb(7, 1); } // 打印 function printhtml() { if (confirm('确定打印吗?')) { wb.execwb(6, 1); } }
//------------------------------------------------------------------------------------------------------------
// execwb() 参数以及功能:
wb.execwb(1,1)//打开
wb.ExecWB(2,1);//关闭现在所有的IE窗口,并打开一个新窗口
wb.ExecWB(4,1)//;保存网页
wb.ExecWB(6,1)//打印
wb.ExecWB(7,1)//打印预览
wb.ExecWB(8,1)//打印页面设置
wb.ExecWB(10,1)//查看页面属性
wb.ExecWB(15,1)//好像是撤销,有待确认
wb.ExecWB(17,1)//全选
wb.ExecWB(22,1)//刷新
wb.ExecWB(45,1)//关闭窗体无提示
4、选择打印区域局部打印,比如我们想让“打印”和“打印预览”两个按钮不出现在被打印的区域,可以设置css属性:media=print(设置这个是为了不被打印,只负责显示),media=screen(既可以显示,也可以被打印)。
<style type="text/css" media=print> .noprint { display:none // 被打印时的样式 } </style> <div style="border: 1px solid #000; height:40px;width:100%" class="noprint"> <a id="lkprint" onclick="printhtml();" sytle="height:20px">打印</a> <a id="lkprintPreview" onclick="printpreview();" style="height:20px">打印预览</a> </div>
注意:此方法只适用与ie浏览器(支持ie内核)