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 相关文章推荐
会自动逐行上升的文本框
Jun 30 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
基于jQuery实现点击列表加载更多效果
May 31 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
Angular中的interceptors拦截器
Jun 25 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
JavaScript实现动态生成表格
Aug 02 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 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+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
python队列Queue的详解
2019/05/10 Python
python模块导入的方法
2019/10/24 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
不遵守课堂纪律的检讨书
2014/09/24 职场文书
检讨书格式
2015/01/23 职场文书
财务会计岗位职责
2015/02/03 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
python基础之while循环语句的使用
2021/04/20 Python
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
python实现简单的井字棋
2021/05/26 Python
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技