javascript 打印内容方法小结


Posted in Javascript onNovember 04, 2009

一般打印就用window.print();就OK了
但是一般都是选择性打印所以会调用方法:

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(); 
}

问题又来了~
会有页脚和页眉~还有横向和纵向之分~
怎么办?
最好就是用到打印预览~
因为它里面有设置
这时必须引用IE的一个控件"WebBrowser"
在页面里引用:
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
其控件方法:
WebBrowser.ExecWB(1,1) 打开 
WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 
WebBrowser.ExecWB(4,1) 保存网页 
WebBrowser.ExecWB(6,1) 打印 
WebBrowser.ExecWB(7,1) 打印预览 
WebBrowser.ExecWB(8,1) 打印页面设置 
WebBrowser.ExecWB(10,1) 查看页面属性 
WebBrowser.ExecWB(15,1) 好像是撤销,有待确认 
WebBrowser.ExecWB(17,1) 全选 
WebBrowser.ExecWB(22,1) 刷新 
WebBrowser.ExecWB(45,1) 关闭窗体无提示

示例:
<object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
打印测试
<input type="button" onclick="WebBrowser.ExecWB(7,1)" value="打印预览">
随便用个文本文件复制粘贴~改后缀名~
ie运行~点预览~设置打印~打印~OK
然后再把其考到项目里~比如aspx里
同样运行,点预览~
咦~怎么出现ie安全警告"internet explorer"已阻止此站点用不安全方式使用ActiveX控件"
这时就要改ie的安全设置了(如果没装补丁就没事~那是你"rp"好,不一定客户和其他的人的"rp"和你一样好)
操作:
主菜单"工具"——Internet选项——安全——自定义级别, 将"安全设置"中"对没有标记为安全的ActiveX"控件进行初始化和脚本运行由"禁用"改为"启用"
另一种方法,"工具" "Internet选项" "受信任的站点(可信站点)""站点",然后填入网址即可,如果这个网站不是以https:连接的把下面"对该区域中的所有站点要求服务器验证(https:)"前面的勾去掉即可。
(如果是局域网:那就是 "工具" "Internet选项" "本地Internet" "高级")
(无线网貌似不是局域网的)
推荐第二种~
万事俱备~ok了~
打印方法集(没有一一测试):
-------------------------------------------------------------------------- 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""><script> 
var hkey_root,hkey_path,hkey_key 
hkey_root="HKEY_CURRENT_USER" 
hkey_path="file://software//Microsoft//Internet Explorer\\PageSetup\\" 
//设置网页打印的页眉页脚为空 
function pagesetup_null(){ 
try{ 
var RegWsh = new ActiveXObject("WScript.Shell") 
hkey_key="header" 
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"") 
hkey_key="footer" 
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"") 
}catch(e){} 
} 
//设置网页打印的页眉页脚为默认值 
function pagesetup_default(){ 
try{ 
var RegWsh = new ActiveXObject("WScript.Shell") 
hkey_key="header" 
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P") 
hkey_key="footer" 
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d") 
}catch(e){} 
} 
function setdivhidden(id){//把指定id以外的层统统隐藏 
var divs=document.getElementsByTagName("DIV"); 
for(var i=0;i<divs.length;i++) 
{ 
if(divs.item(i).id!=id) 
divs.item(i).style.display="none"; 
} 
} 
function setdivvisible(id){//把指定id以外的层统统显示 
var divs=document.getElementsByTagName("DIV"); 
for(var i=0;i<divs.length;i++) 
{ 
if(divs.item(i).id!=id) 
divs.item(i).style.display="block"; 
} 
} 
function printpr() //预览函数 
{ 
pagesetup_null();//预览之前去掉页眉,页脚 
setdivhidden("div1");//打印之前先隐藏不想打印输出的元素 
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);//在body标签内加入html(WebBrowser activeX控件) 
WebBrowser1.ExecWB(7, 1);//打印预览 
WebBrowser1.outerHTML = "";//从代码中清除插入的html代码 
pagesetup_default();//预览结束后页眉页脚恢复默认值 
setdivvisible("div1");//预览结束后显示按钮 
} 
function print() //打印函数 
{ 
pagesetup_null();//打印之前去掉页眉,页脚 
setdivhidden("div1"); //打印之前先隐藏不想打印输出的元素 
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);//在body标签内加入html(WebBrowser activeX控件) 
WebBrowser1.ExecWB(6, 1);//打印 
WebBrowser1.outerHTML = "";//从代码中清除插入的html代码 
pagesetup_default();//打印结束后页眉页脚恢复默认值 
setdivvisible("div1");//打印结束后显示按钮 
} 
</script> 
<body> 
<div id=div0> 
<input type=button value=打印预览 onclick="printpr()"> 
<input type=button onClick="print()" value="打印"> 
表格一: 
</div> 
<div id=div1> 
<table> 
<tr><td>1111</td><td>1111</td><td>1111</td></tr> 
<tr><td>1111</td><td>1111</td><td>1111</td></tr> 
<tr><td>1111</td><td>1111</td><td>1111</td></tr> 
</table> 
</div> 
</body> 
</HTML>

----------------------------------------------------------------------------
JS实现局部打印和预览:
第一种:
JS 实现简单的页面局部打印
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(); 
} 
}
Javascript 相关文章推荐
表单提交时自动复制内容到剪贴板的js代码
Mar 16 Javascript
javascript Array.remove() 数组删除
Aug 06 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
Nov 04 #Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 #Javascript
jQuery 加上最后自己的验证
Nov 04 #Javascript
javascript Math.random()随机数函数
Nov 04 #Javascript
jquery animate 动画效果使用说明
Nov 04 #Javascript
JavaScript window.setTimeout() 的详细用法
Nov 04 #Javascript
javascript 限制输入脚本大全
Nov 03 #Javascript
You might like
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
js style动态设置table高度
2014/10/21 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python实现Const详解
2015/01/27 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Django实现自定义404,500页面教程
2017/03/26 Python
python 常用的基础函数
2018/07/10 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
Python多项式回归的实现方法
2019/03/11 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
python中rc1什么意思
2020/06/19 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
培训楼经理岗位责任制
2014/02/10 职场文书
欢迎横幅标语
2014/06/17 职场文书
房屋授权委托书范本
2014/10/07 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书