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