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 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
Sep 06 Javascript
jQuery焦点图插件SaySlide
Dec 21 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
Dec 28 Javascript
全面详细的jQuery常见开发技巧手册
Feb 21 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
vue-cli 构建骨架屏的方法示例
Nov 08 Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
Oct 12 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
vue实现整屏滚动切换
Jun 29 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Django 用户认证组件使用详解
2019/07/23 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
活动主持人开场白
2015/05/28 职场文书
2016年端午节寄语
2015/12/04 职场文书