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 相关文章推荐
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
JavaScript去掉数组中的重复元素
Jan 13 Javascript
防止文件缓存的js代码
Jan 10 Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
Sep 12 Javascript
解决JS请求服务器gbk文件乱码的问题
Oct 16 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
ECharts仪表盘实例代码(附源码下载)
Feb 18 Javascript
原生js的RSA和AES加密解密算法
Oct 08 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 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的性能
2013/10/30 PHP
php实现URL加密解密的方法
2016/11/17 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
python负载均衡的简单实现方法
2018/02/04 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
python中如何使用insert函数
2020/01/09 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
春节超市活动方案
2014/08/14 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
升学宴祝酒词
2015/08/11 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技