一般打印就用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();
}
}