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 相关文章推荐
jquery nth-child()选择器的简单应用
Jul 10 Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 Javascript
详细分析JavaScript函数定义
Jul 16 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
jQuery事件用法详解
Oct 06 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
VueJS事件处理器v-on的使用方法
Sep 27 Javascript
仿京东快报向上滚动的实例
Dec 13 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
Feb 07 Javascript
微信小程序引入Vant组件库过程解析
Aug 06 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实现用户在线时间统计详解
2011/10/08 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
PHP 文件上传限制问题
2019/09/01 PHP
JS获取农历日期具体实例
2013/11/14 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
Python线程指南详细介绍
2017/01/05 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
python实现简单学生信息管理系统
2020/04/09 Python
SQL Server笔试题
2012/01/10 面试题
金士达面试非笔试
2012/03/14 面试题
学年自我鉴定范文
2013/10/01 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
学习保证书100字
2015/02/26 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015学校年度工作总结
2015/05/11 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers