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 相关文章推荐
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
Dec 12 Javascript
两种不同的方法实现js对checkbox进行全选和反选
May 13 Javascript
javascript检测是否联网的实现代码
Sep 28 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
Dec 26 Javascript
JS及JQuery对Html内容编码,Html转义
Feb 17 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
JavaScript实现五子棋游戏的方法详解
Jul 08 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中for与foreach的区别分析
2011/03/09 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
js代码实现微博导航栏
2015/07/30 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
Python字符串格式化
2015/06/15 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
python读取mysql数据绘制条形图
2020/03/25 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
国际贸易专业推荐信
2013/11/15 职场文书
11月红领巾广播稿
2014/01/17 职场文书
商场活动策划方案
2014/01/24 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
公司介绍信范文
2015/01/31 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
如何用python绘制雷达图
2021/04/24 Python
python异常中else的实例用法
2021/06/15 Python
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL