javascript 打印內(nèi)容方法小結(jié)
更新時(shí)間:2009年11月04日 23:58:47 作者:
關(guān)于JS打印問(wèn)題!網(wǎng)上收集+自己總結(jié) ,需要的朋友可以參考下。
一般打印就用window.print();就OK了
但是一般都是選擇性打印所以會(huì)調(diào)用方法:
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();
}
問(wèn)題又來(lái)了~
會(huì)有頁(yè)腳和頁(yè)眉~還有橫向和縱向之分~
怎么辦?
最好就是用到打印預(yù)覽~
因?yàn)樗锩嬗性O(shè)置
這時(shí)必須引用IE的一個(gè)控件"WebBrowser"
在頁(yè)面里引用:
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
其控件方法:
WebBrowser.ExecWB(1,1) 打開(kāi)
WebBrowser.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開(kāi)一個(gè)新窗口
WebBrowser.ExecWB(4,1) 保存網(wǎng)頁(yè)
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印預(yù)覽
WebBrowser.ExecWB(8,1) 打印頁(yè)面設(shè)置
WebBrowser.ExecWB(10,1) 查看頁(yè)面屬性
WebBrowser.ExecWB(15,1) 好像是撤銷,有待確認(rèn)
WebBrowser.ExecWB(17,1) 全選
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45,1) 關(guān)閉窗體無(wú)提示
示例:
<object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
打印測(cè)試
<input type="button" onclick="WebBrowser.ExecWB(7,1)" value="打印預(yù)覽">
隨便用個(gè)文本文件復(fù)制粘貼~改后綴名~
ie運(yùn)行~點(diǎn)預(yù)覽~設(shè)置打印~打印~OK
然后再把其考到項(xiàng)目里~比如aspx里
同樣運(yùn)行,點(diǎn)預(yù)覽~
咦~怎么出現(xiàn)ie安全警告"internet explorer"已阻止此站點(diǎn)用不安全方式使用ActiveX控件"
這時(shí)就要改ie的安全設(shè)置了(如果沒(méi)裝補(bǔ)丁就沒(méi)事~那是你"rp"好,不一定客戶和其他的人的"rp"和你一樣好)
操作:
主菜單"工具"——Internet選項(xiàng)——安全——自定義級(jí)別, 將"安全設(shè)置"中"對(duì)沒(méi)有標(biāo)記為安全的ActiveX"控件進(jìn)行初始化和腳本運(yùn)行由"禁用"改為"啟用"
另一種方法,"工具" "Internet選項(xiàng)" "受信任的站點(diǎn)(可信站點(diǎn))""站點(diǎn)",然后填入網(wǎng)址即可,如果這個(gè)網(wǎng)站不是以https:連接的把下面"對(duì)該區(qū)域中的所有站點(diǎn)要求服務(wù)器驗(yàn)證(https:)"前面的勾去掉即可。
(如果是局域網(wǎng):那就是 "工具" "Internet選項(xiàng)" "本地Internet" "高級(jí)")
(無(wú)線網(wǎng)貌似不是局域網(wǎng)的)
推薦第二種~
萬(wàn)事俱備~ok了~
打印方法集(沒(méi)有一一測(cè)試):
--------------------------------------------------------------------------
<!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\\"
//設(shè)置網(wǎng)頁(yè)打印的頁(yè)眉頁(yè)腳為空
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){}
}
//設(shè)置網(wǎng)頁(yè)打印的頁(yè)眉頁(yè)腳為默認(rèn)值
function pagesetup_default(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b頁(yè)碼,&p/&P")
hkey_key="footer"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d")
}catch(e){}
}
function setdivhidden(id){//把指定id以外的層統(tǒng)統(tǒng)隱藏
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以外的層統(tǒng)統(tǒng)顯示
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() //預(yù)覽函數(shù)
{
pagesetup_null();//預(yù)覽之前去掉頁(yè)眉,頁(yè)腳
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標(biāo)簽內(nèi)加入html(WebBrowser activeX控件)
WebBrowser1.ExecWB(7, 1);//打印預(yù)覽
WebBrowser1.outerHTML = "";//從代碼中清除插入的html代碼
pagesetup_default();//預(yù)覽結(jié)束后頁(yè)眉頁(yè)腳恢復(fù)默認(rèn)值
setdivvisible("div1");//預(yù)覽結(jié)束后顯示按鈕
}
function print() //打印函數(shù)
{
pagesetup_null();//打印之前去掉頁(yè)眉,頁(yè)腳
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標(biāo)簽內(nèi)加入html(WebBrowser activeX控件)
WebBrowser1.ExecWB(6, 1);//打印
WebBrowser1.outerHTML = "";//從代碼中清除插入的html代碼
pagesetup_default();//打印結(jié)束后頁(yè)眉頁(yè)腳恢復(fù)默認(rèn)值
setdivvisible("div1");//打印結(jié)束后顯示按鈕
}
</script>
<body>
<div id=div0>
<input type=button value=打印預(yù)覽 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實(shí)現(xiàn)局部打印和預(yù)覽:
第一種:
JS 實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面局部打印
function preview(oper)
{
if (oper < 10){
bdhtml=window.document.body.innerHTML;//獲取當(dāng)前頁(yè)的html代碼
sprnstr="<!--startprint"+oper+"-->";//設(shè)置打印開(kāi)始區(qū)域
eprnstr="<!--endprint"+oper+"-->";//設(shè)置打印結(jié)束區(qū)域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //從開(kāi)始代碼向后取html
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//從結(jié)束代碼向前取html
window.document.body.innerHTML=prnhtml;
window.print();
window.document.body.innerHTML=bdhtml;
} else {
window.print();
}
}
但是一般都是選擇性打印所以會(huì)調(diào)用方法:
復(fù)制代碼 代碼如下:
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();
}
問(wèn)題又來(lái)了~
會(huì)有頁(yè)腳和頁(yè)眉~還有橫向和縱向之分~
怎么辦?
最好就是用到打印預(yù)覽~
因?yàn)樗锩嬗性O(shè)置
這時(shí)必須引用IE的一個(gè)控件"WebBrowser"
在頁(yè)面里引用:
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
其控件方法:
復(fù)制代碼 代碼如下:
WebBrowser.ExecWB(1,1) 打開(kāi)
WebBrowser.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開(kāi)一個(gè)新窗口
WebBrowser.ExecWB(4,1) 保存網(wǎng)頁(yè)
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印預(yù)覽
WebBrowser.ExecWB(8,1) 打印頁(yè)面設(shè)置
WebBrowser.ExecWB(10,1) 查看頁(yè)面屬性
WebBrowser.ExecWB(15,1) 好像是撤銷,有待確認(rèn)
WebBrowser.ExecWB(17,1) 全選
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45,1) 關(guān)閉窗體無(wú)提示
示例:
<object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
打印測(cè)試
<input type="button" onclick="WebBrowser.ExecWB(7,1)" value="打印預(yù)覽">
隨便用個(gè)文本文件復(fù)制粘貼~改后綴名~
ie運(yùn)行~點(diǎn)預(yù)覽~設(shè)置打印~打印~OK
然后再把其考到項(xiàng)目里~比如aspx里
同樣運(yùn)行,點(diǎn)預(yù)覽~
咦~怎么出現(xiàn)ie安全警告"internet explorer"已阻止此站點(diǎn)用不安全方式使用ActiveX控件"
這時(shí)就要改ie的安全設(shè)置了(如果沒(méi)裝補(bǔ)丁就沒(méi)事~那是你"rp"好,不一定客戶和其他的人的"rp"和你一樣好)
操作:
主菜單"工具"——Internet選項(xiàng)——安全——自定義級(jí)別, 將"安全設(shè)置"中"對(duì)沒(méi)有標(biāo)記為安全的ActiveX"控件進(jìn)行初始化和腳本運(yùn)行由"禁用"改為"啟用"
另一種方法,"工具" "Internet選項(xiàng)" "受信任的站點(diǎn)(可信站點(diǎn))""站點(diǎn)",然后填入網(wǎng)址即可,如果這個(gè)網(wǎng)站不是以https:連接的把下面"對(duì)該區(qū)域中的所有站點(diǎn)要求服務(wù)器驗(yàn)證(https:)"前面的勾去掉即可。
(如果是局域網(wǎng):那就是 "工具" "Internet選項(xiàng)" "本地Internet" "高級(jí)")
(無(wú)線網(wǎng)貌似不是局域網(wǎng)的)
推薦第二種~
萬(wàn)事俱備~ok了~
打印方法集(沒(méi)有一一測(cè)試):
復(fù)制代碼 代碼如下:
--------------------------------------------------------------------------
<!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\\"
//設(shè)置網(wǎng)頁(yè)打印的頁(yè)眉頁(yè)腳為空
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){}
}
//設(shè)置網(wǎng)頁(yè)打印的頁(yè)眉頁(yè)腳為默認(rèn)值
function pagesetup_default(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b頁(yè)碼,&p/&P")
hkey_key="footer"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d")
}catch(e){}
}
function setdivhidden(id){//把指定id以外的層統(tǒng)統(tǒng)隱藏
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以外的層統(tǒng)統(tǒng)顯示
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() //預(yù)覽函數(shù)
{
pagesetup_null();//預(yù)覽之前去掉頁(yè)眉,頁(yè)腳
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標(biāo)簽內(nèi)加入html(WebBrowser activeX控件)
WebBrowser1.ExecWB(7, 1);//打印預(yù)覽
WebBrowser1.outerHTML = "";//從代碼中清除插入的html代碼
pagesetup_default();//預(yù)覽結(jié)束后頁(yè)眉頁(yè)腳恢復(fù)默認(rèn)值
setdivvisible("div1");//預(yù)覽結(jié)束后顯示按鈕
}
function print() //打印函數(shù)
{
pagesetup_null();//打印之前去掉頁(yè)眉,頁(yè)腳
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標(biāo)簽內(nèi)加入html(WebBrowser activeX控件)
WebBrowser1.ExecWB(6, 1);//打印
WebBrowser1.outerHTML = "";//從代碼中清除插入的html代碼
pagesetup_default();//打印結(jié)束后頁(yè)眉頁(yè)腳恢復(fù)默認(rèn)值
setdivvisible("div1");//打印結(jié)束后顯示按鈕
}
</script>
<body>
<div id=div0>
<input type=button value=打印預(yù)覽 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實(shí)現(xiàn)局部打印和預(yù)覽:
第一種:
JS 實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面局部打印
復(fù)制代碼 代碼如下:
function preview(oper)
{
if (oper < 10){
bdhtml=window.document.body.innerHTML;//獲取當(dāng)前頁(yè)的html代碼
sprnstr="<!--startprint"+oper+"-->";//設(shè)置打印開(kāi)始區(qū)域
eprnstr="<!--endprint"+oper+"-->";//設(shè)置打印結(jié)束區(qū)域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //從開(kāi)始代碼向后取html
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//從結(jié)束代碼向前取html
window.document.body.innerHTML=prnhtml;
window.print();
window.document.body.innerHTML=bdhtml;
} else {
window.print();
}
}
您可能感興趣的文章:
- jsvascript圖像處理—(計(jì)算機(jī)視覺(jué)應(yīng)用)圖像金字塔
- js 實(shí)現(xiàn)打印網(wǎng)頁(yè)中定義的部分內(nèi)容的代碼
- javascript打印輸出json實(shí)例
- jsp/javascript打印九九乘法表代碼
- javascript 局部頁(yè)面打印實(shí)現(xiàn)代碼
- js fromCharCode輸出26個(gè)字母的代碼
- js循環(huán)輸出圖片,不足的要補(bǔ)0
- javascript實(shí)現(xiàn)輸出指定行數(shù)正方形圖案的方法
- JavaScript實(shí)現(xiàn)打印星型金字塔功能實(shí)例分析
相關(guān)文章
javascript 在firebug調(diào)試時(shí)用console.log的方法
當(dāng)你使用console.log()函數(shù)時(shí),下面的firebug一定要打開(kāi),不然這函數(shù)在用firefox運(yùn)行時(shí)無(wú)效且影響正常程序,如果用IE打開(kāi),將會(huì)出錯(cuò)2012-05-05JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼
本文通過(guò)實(shí)例代碼給大家介紹了js冒泡排序和選擇排序的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-09-09

javascript實(shí)現(xiàn)原生ajax的幾種方法介紹
項(xiàng)目中不需要加載jquery這種龐大的js插件要使用到ajax這種功能該如何辦呢?下面和大家分享幾種利用javascript實(shí)現(xiàn)原生ajax的方法
2013-09-09 
js removeChild 障眼法 可能出現(xiàn)的錯(cuò)誤
js removeChild 障眼法之可能出現(xiàn)的錯(cuò)誤,大家看下代碼就知道了。
2009-10-10