js控制web打印(局部打印)方法整理


Posted in Javascript onMay 29, 2013

首先定义css样式:

@media print { 
.noprint { display: none;color:green } 
}

对于不想打印的内容只用在标签中加上 class=noprint即可,打印的时候客户也不会看到页面任何变化。
打印时调用 window.print();

另外几种js局部打印的方法:
移花接木:
打印的时候,把需要打印的内容替换成整个body内容(用户会在打印的时候看到变化,客户体验不太好)

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(); 
} 
}

使用很简单 将页面内要打印的内容加入中间<!--startprint1-->XXXXX<!--endprint1-->
再加个打印按纽 onclick=preview(1)
-----------------------------------------
WebBrowser是IE内置的浏览器控件,无需用户下载.(未实验)
一、WebBrowser控件
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>

二、WebBrowder控件的方法
//打印 
WebBrowser1.ExecWB(6,1); 
//打印设置 
WebBrowser1.ExecWB(8,1); 
//打印预览 
WebBrowser1.ExecWB(7,1);

关于这个组件还有其他的用法,列举如下:
WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示
但是打印是会把整个页面都打印出来的,页面里面有什么东西就打印出来,我们有时候只需要打印数据表格,这时我们就要写一个样式了:把不想打印的部份隐藏起来:
样式内容:
<style type="text/css" media=print> 
.noprint......{display : none } 
</style>

然后使用样式就可以:
<p class="noprint">不需要打印的地方</p>
代码如下:
<script language="javascript"> 
function printsetup()......{ 
// 打印页面设置 
wb.execwb(8,1); 
} 
function printpreview()......{ 
// 打印页面预览 
wb.execwb(7,1); 
} 
function printit() 
....{ 
if (confirm('确定打印吗?')) ......{ 
wb.execwb(6,6) 
} 
} 
</script> 
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT> 
<input type=button name=button_print value="打印" class="noprint" onclick="javascript:printit()"> 
<input type=button name=button_setup value="打印页面设置" class="noprint" onclick="javascript:printsetup();"> 
<input type=button name=button_show value="打印预览" class="noprint" onclick="javascript:printpreview();">
Javascript 相关文章推荐
javascript中基本类型和引用类型的区别分析
May 12 Javascript
AngularJS的表单使用详解
Jun 17 Javascript
jQuery使用正则表达式限制文本框只能输入数字
Jun 18 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
Jun 24 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
vue iview实现动态路由和权限验证功能
Apr 17 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
Jul 18 Javascript
Javascript Dom元素获取和添加详解
Sep 24 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 Javascript
解决vue-photo-preview 异步图片放大失效的问题
Jul 29 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 Javascript
js动态为代码着色显示行号
May 29 #Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 #Javascript
jQuery JSON实现无刷新三级联动实例探讨
May 28 #Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 #Javascript
js仿百度有啊通栏展示效果实现代码
May 28 #Javascript
jquery实现商品拖动选择效果代码(自写)
May 28 #Javascript
兼容IE和FF的图片上传前预览js代码
May 28 #Javascript
You might like
php学习之数据类型之间的转换介绍
2011/06/09 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
Prototype使用指南之string.js
2007/01/10 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
在windows系统中实现python3安装lxml
2016/03/23 Python
python爬取51job中hr的邮箱
2016/05/14 Python
Python利用IPython提高开发效率
2016/08/10 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
创卫工作总结2015
2015/04/22 职场文书
送达通知书
2015/04/25 职场文书
员工旷工检讨书
2015/08/15 职场文书
2019 入党申请书范文
2019/07/10 职场文书
门面租赁合同范文
2019/08/06 职场文书
Python如何加载模型并查看网络
2022/07/15 Python