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 相关文章推荐
面向对象的编程思想在javascript中的运用上部
Nov 20 Javascript
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
利用了jquery的ajax实现二级联互动菜单
Dec 02 Javascript
JS 打印功能代码可实现打印预览、打印设置等
Oct 31 Javascript
jQuery调用ajax请求的常见方法汇总
Mar 24 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
May 16 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
Feb 27 Javascript
JS算法教程之字符串去重与字符串反转
Dec 15 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新手谈谈我的学习心得
2007/02/25 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
php实现三级级联下拉框
2016/04/17 PHP
newxtree.js代码
2007/03/13 Javascript
日期 时间js控件
2009/05/07 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
Seajs源码详解分析
2019/04/02 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
Python进行统计建模
2020/08/10 Python
python mock测试的示例
2020/10/19 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
pandas 操作 Excel操作总结
2021/03/31 Python
解决Pytorch中关于model.eval的问题
2021/05/22 Python