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 进度条效果实现代码整理
May 21 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
Jun 06 Javascript
JS调用CS里的带参方法实例
Aug 01 Javascript
JavaScript File API实现文件上传预览
Feb 02 Javascript
浅析JS原型继承与类的继承
Apr 07 Javascript
js简单正则验证汉字英文及下划线的方法
Nov 28 Javascript
bootstrapValidator表单验证插件学习
Dec 30 Javascript
解决layer弹层遮罩挡住窗体的问题
Aug 17 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 Javascript
JS模拟浏览器实现全局搜索功能
Sep 11 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 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将向Java靠拢
2006/10/09 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
包含中国城市的javascript对象实例
2015/08/03 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
详解redux异步操作实践
2018/08/15 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
python网络爬虫采集联想词示例
2014/02/11 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
softmax及python实现过程解析
2019/09/30 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
对孩子的寄语
2014/04/09 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
2014年安全生产责任书
2014/07/22 职场文书
初中同学会活动方案
2014/08/22 职场文书
中班教师个人总结
2015/02/05 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2015中学教学工作总结
2015/07/22 职场文书