js实现页面打印功能实例代码(附去页眉页脚功能代码)


Posted in Javascript onDecember 15, 2009
<html> 
<head></head> 
<style type="text/css" media="screen"> 
@media print{ 
.print {display:block;} 
.notPrint {display:none;} 
} 
</style> 
<script language="javascript"> 
function preview() 
{ 
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> 
<body> 
<form id="WebForm1" method="post" > 
<center>本部分以上不被打印</center> 
<!--startprint--> 
<div align="center"> 
<asp:DataGrid id="dgShow" runat="server"> 
<!--省略部分代码--> 
</asp:DataGrid> 
<table> 
<tr><td>打印打印打印打印打印打印打印打印</td></tr> 
</table> 
</div> 
<!--endprint--> 
<center>本部分以下不被打印</center> 
<div align="center"> 
<input type="button" name="print" value="预览并打印" onclick="preview()"> 
</div> 
<style> @media Print { .Noprn { DISPLAY: none }} 
</style> 
<p class="Noprn">不打印</p> 
<table id="datagrid"> 
<tr> 
<td>打印</td> 
</tr> 
</table> 
<input class="Noprn" type="button" onclick="window.print()" value="print"> 
</form> 
</body> 
</html>

-------------
使用JS打印,
看代码
<script language="javascript"> 
function preview() 
{ 
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>

这段代码,他是打印
<!--startprint-->和<!--endprint-->
这个标记之间的网页内容。
所以网页中要包含这个2个标签才行···
下面是去除页脚页眉的js代码
<script> 
var HKEY_Root,HKEY_Path,HKEY_Key; 
HKEY_Root="HKEY_CURRENT_USER"; 
HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; 
//设置网页打印的页眉页脚为空 
function PageSetup_Null() 
{ 
try 
{ 
var Wsh=new ActiveXObject("WScript.Shell"); 
HKEY_Key="header"; 
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); 
HKEY_Key="footer"; 
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); 
} 
catch(e) 
{} } 
//设置网页打印的页眉页脚为默认值 
function PageSetup_Default() 
{ 
try 
{ 
var Wsh=new ActiveXObject("WScript.Shell"); 
HKEY_Key="header"; 
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P"); 
HKEY_Key="footer"; 
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d"); 
} 
catch(e) 
{} 
} 
PageSetup_Default(); 
</script>

注意有可能执行时,会出现没有效果的错误,这时原因是可能你的浏览器限制了active对象的创建,只要取消限制就好了,取消方法如下:

打开你的ie浏览器internet选项—— 安全—— 自定义级别—— 把对没有标记为安全的activex控件进行初始化和脚本运行 设置为启用
更多功能请参考三水点靠木现在用的代码。
http://img.3water.com/inc/content.js

Javascript 相关文章推荐
js自动生成的元素与页面原有元素发生堆叠的解决方法
Oct 24 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
JS简单实现浮动窗口效果示例
Sep 07 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
Mar 08 Javascript
JS将unicode码转中文方法
May 08 Javascript
JavaScript闭包的简单应用
Sep 01 Javascript
Ionic学习日记实现验证码倒计时
Feb 08 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
Apr 16 Javascript
vue实现微信分享链接添加动态参数的方法
Apr 29 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
Angular8基础应用之表单及其验证
Aug 11 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
jQuery 渐变下拉菜单
Dec 15 #Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
Dec 15 #Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
Dec 15 #Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
Dec 15 #Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 #Javascript
Javascript attachEvent传递参数的办法
Dec 14 #Javascript
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 #Javascript
You might like
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
前端微信支付js代码
2016/07/25 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python用GET方法上传文件
2015/03/10 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
2015年公务员工作总结
2015/04/24 职场文书
食品药品安全责任书
2015/05/11 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电