js控制web打印(局部打印)方法整理
更新時間:2013年05月29日 18:10:10 作者:
本文整理了一些常用的web打印及局部打印的方法以備不時之需,感興趣的朋友可以學(xué)習(xí)下
首先定義css樣式:
@media print {
.noprint { display: none;color:green }
}
對于不想打印的內(nèi)容只用在標(biāo)簽中加上 class=noprint即可,打印的時候客戶也不會看到頁面任何變化。
打印時調(diào)用 window.print();
另外幾種js局部打印的方法:
移花接木:
打印的時候,把需要打印的內(nèi)容替換成整個body內(nèi)容(用戶會在打印的時候看到變化,客戶體驗不太好)
function preview(oper)
......{
if (oper < 10)......{
bdhtml=window.document.body.innerHTML;//獲取當(dāng)前頁的html代碼
sprnstr="<!--startprint"+oper+"-->";//設(shè)置打印開始區(qū)域
eprnstr="<!--endprint"+oper+"-->";//設(shè)置打印結(jié)束區(qū)域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //從開始代碼向后取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();
}
}
使用很簡單 將頁面內(nèi)要打印的內(nèi)容加入中間<!--startprint1-->XXXXX<!--endprint1-->
再加個打印按紐 onclick=preview(1)
-----------------------------------------
WebBrowser是IE內(nèi)置的瀏覽器控件,無需用戶下載.(未實驗)
一、WebBrowser控件
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
二、WebBrowder控件的方法
//打印
WebBrowser1.ExecWB(6,1);
//打印設(shè)置
WebBrowser1.ExecWB(8,1);
//打印預(yù)覽
WebBrowser1.ExecWB(7,1);
關(guān)于這個組件還有其他的用法,列舉如下:
WebBrowser.ExecWB(1,1) 打開
Web.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開一個新窗口
Web.ExecWB(4,1) 保存網(wǎng)頁
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印預(yù)覽
Web.ExecWB(8,1) 打印頁面設(shè)置
Web.ExecWB(10,1) 查看頁面屬性
Web.ExecWB(15,1) 好像是撤銷,有待確認(rèn)
Web.ExecWB(17,1) 全選
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 關(guān)閉窗體無提示
但是打印是會把整個頁面都打印出來的,頁面里面有什么東西就打印出來,我們有時候只需要打印數(shù)據(jù)表格,這時我們就要寫一個樣式了:把不想打印的部份隱藏起來:
樣式內(nèi)容:
<style type="text/css" media=print>
.noprint......{display : none }
</style>
然后使用樣式就可以:
<p class="noprint">不需要打印的地方</p>
代碼如下:
<script language="javascript">
function printsetup()......{
// 打印頁面設(shè)置
wb.execwb(8,1);
}
function printpreview()......{
// 打印頁面預(yù)覽
wb.execwb(7,1);
}
function printit()
....{
if (confirm('確定打印嗎?')) ......{
wb.execwb(6,6)
}
}
</script>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="打印" class="noprint" onclick="javascript:printit()">
<input type=button name=button_setup value="打印頁面設(shè)置" class="noprint" onclick="javascript:printsetup();">
<input type=button name=button_show value="打印預(yù)覽" class="noprint" onclick="javascript:printpreview();">
復(fù)制代碼 代碼如下:
@media print {
.noprint { display: none;color:green }
}
對于不想打印的內(nèi)容只用在標(biāo)簽中加上 class=noprint即可,打印的時候客戶也不會看到頁面任何變化。
打印時調(diào)用 window.print();
另外幾種js局部打印的方法:
移花接木:
打印的時候,把需要打印的內(nèi)容替換成整個body內(nèi)容(用戶會在打印的時候看到變化,客戶體驗不太好)
復(fù)制代碼 代碼如下:
function preview(oper)
......{
if (oper < 10)......{
bdhtml=window.document.body.innerHTML;//獲取當(dāng)前頁的html代碼
sprnstr="<!--startprint"+oper+"-->";//設(shè)置打印開始區(qū)域
eprnstr="<!--endprint"+oper+"-->";//設(shè)置打印結(jié)束區(qū)域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //從開始代碼向后取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();
}
}
使用很簡單 將頁面內(nèi)要打印的內(nèi)容加入中間<!--startprint1-->XXXXX<!--endprint1-->
再加個打印按紐 onclick=preview(1)
-----------------------------------------
WebBrowser是IE內(nèi)置的瀏覽器控件,無需用戶下載.(未實驗)
一、WebBrowser控件
復(fù)制代碼 代碼如下:
<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
二、WebBrowder控件的方法
復(fù)制代碼 代碼如下:
//打印
WebBrowser1.ExecWB(6,1);
//打印設(shè)置
WebBrowser1.ExecWB(8,1);
//打印預(yù)覽
WebBrowser1.ExecWB(7,1);
關(guān)于這個組件還有其他的用法,列舉如下:
WebBrowser.ExecWB(1,1) 打開
Web.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開一個新窗口
Web.ExecWB(4,1) 保存網(wǎng)頁
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印預(yù)覽
Web.ExecWB(8,1) 打印頁面設(shè)置
Web.ExecWB(10,1) 查看頁面屬性
Web.ExecWB(15,1) 好像是撤銷,有待確認(rèn)
Web.ExecWB(17,1) 全選
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 關(guān)閉窗體無提示
但是打印是會把整個頁面都打印出來的,頁面里面有什么東西就打印出來,我們有時候只需要打印數(shù)據(jù)表格,這時我們就要寫一個樣式了:把不想打印的部份隱藏起來:
樣式內(nèi)容:
復(fù)制代碼 代碼如下:
<style type="text/css" media=print>
.noprint......{display : none }
</style>
然后使用樣式就可以:
<p class="noprint">不需要打印的地方</p>
代碼如下:
復(fù)制代碼 代碼如下:
<script language="javascript">
function printsetup()......{
// 打印頁面設(shè)置
wb.execwb(8,1);
}
function printpreview()......{
// 打印頁面預(yù)覽
wb.execwb(7,1);
}
function printit()
....{
if (confirm('確定打印嗎?')) ......{
wb.execwb(6,6)
}
}
</script>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="打印" class="noprint" onclick="javascript:printit()">
<input type=button name=button_setup value="打印頁面設(shè)置" class="noprint" onclick="javascript:printsetup();">
<input type=button name=button_show value="打印預(yù)覽" class="noprint" onclick="javascript:printpreview();">
相關(guān)文章
30分鐘快速入門掌握ES6/ES2015的核心內(nèi)容(下)
這篇文章主要給大家介紹了如何通過30分鐘快速入門掌握ES6/ES2015的核心內(nèi)容的相關(guān)資料,之前給大家介紹過基礎(chǔ)的一些內(nèi)容,下面繼續(xù)來介紹一些其他的新特性,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法【基于正則實現(xiàn)】
這篇文章主要介紹了JavaScript控制輸入框中只能輸入中文、數(shù)字和英文的方法,基于正則驗證實現(xiàn)字符輸入限制功能,具有一定參考借鑒價值,需要的朋友可以參考下2017-03-03
js判斷數(shù)組中是否包含某個值的4種方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于js判斷數(shù)組中是否包含某個值的4種方法,數(shù)組是我們編程中經(jīng)常使用的的數(shù)據(jù)結(jié)構(gòu)之一,在處理數(shù)組時我們經(jīng)常需要在數(shù)組中查找特定的值,JavaScript 包含一些內(nèi)置方法來檢查數(shù)組是否有特定的值或?qū)ο?需要的朋友可以參考下2023-11-11
鼠標(biāo)選擇動態(tài)改變網(wǎng)頁背景顏色的JS代碼
這篇文章主要介紹了鼠標(biāo)選擇動態(tài)改變網(wǎng)頁背景顏色的JS代碼,有需要的朋友可以參考一下2013-12-12
在Postman的腳本中如何使用pm對象獲取接口的請求參數(shù)
這篇文章主要介紹了在Postman的腳本中如何使用pm對象獲取接口的請求參數(shù),本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
layui的表單驗證支持ajax判斷用戶名是否重復(fù)的實例
今天小編就為大家分享一篇layui的表單驗證支持ajax判斷用戶名是否重復(fù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09

