window.print()打印html網(wǎng)頁(yè)的兩種方法實(shí)現(xiàn)
一、編輯打印區(qū)域
思路:
通過(guò)編輯打印的開(kāi)始、結(jié)束標(biāo)記來(lái)區(qū)分打印的區(qū)域
HTML:
<!--startprint--> <div>打印的區(qū)域</div> <!--endprint-->
js:
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->"; //開(kāi)始打印標(biāo)識(shí)字符串有17個(gè)字符
eprnstr="<!--endprint-->"; //結(jié)束打印標(biāo)識(shí)字符串
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); //從開(kāi)始打印標(biāo)識(shí)之后的內(nèi)容
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //截取開(kāi)始標(biāo)識(shí)和結(jié)束標(biāo)識(shí)之間的內(nèi)容
window.document.body.innerHTML=prnhtml; //把需要打印的指定內(nèi)容賦給body.innerHTML
window.print(); //調(diào)用瀏覽器的打印功能打印指定區(qū)域
window.document.body.innerHTML=bdhtml;//重新給頁(yè)面內(nèi)容賦值;
return false;
}
傳送門(mén):window.print()局部打印三種方式
二:將不需要打印的部分隱藏
思路:
在打印之前利用jQuery的$(selector).hide(speed,callback)語(yǔ)法將不需要的元素先隱藏,打印之后再將隱藏的元素顯示出來(lái)$(selector).show(speed,callback)
HTML:
<button class="btn btn-primary" style="width: 85px;height: 40px;margin-left: 25px;" onclick="doPrint_hide()">
打印
</button>
<div class="tab_out1 hide_when_print">
11111
</div>
<div class="everyCustomer_list">
22222
</div>
<div class="form-horizonta hide_when_print">
3333
</div>
js:
<script>
function doPrint_hide() {
window.print()
}
$(function () {
var beforePrint = function () {
//將需要打印的元素上加一個(gè) hide_when_print類(lèi)(可以隨便定義),這個(gè)類(lèi)是專(zhuān)門(mén)控制顯示隱藏的
$(".hide_when_print").hide()
console.log('打印前');
//設(shè)置打印時(shí)的頁(yè)面的樣式
document.getElementsByTagName('body')[0].style.zoom = 1.10;
var css = {
'display': 'flex',
'flex-direction': 'column',
'justify-content': 'center',
'flex-wrap': 'wrap',
};
var css1 = {
"margin": '2px auto'
}
var css2 = {
'border': "0"
}
$("#tab_out1").css(css)
$(".everyCustomer_list").css(css1)
$(".form-horizontal").css(css2)
};
var afterPrint = function () {
console.log('打印后');
document.getElementsByTagName('body')[0].style.zoom = 1.00;
//顯示之前被隱藏的元素
$(".hide_when_print").show();
//設(shè)置打印后的樣式
var css = {
'display': 'flex',
'flex-direction': 'row',
'justify-content': 'flex-start',
'flex-wrap': 'wrap',
};
var css1 = {
'margin': '0',
'margin-left': '12px',
'margin-top': '20px'
}
var css2 = {
'border': "1px solid #e7e7eb"
}
$("#tab_out1").css(css);
$(".everyCustomer_list").css(css1);
$(".form-horizontal").css(css2)
};
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function (mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
})
</script>
到此這篇關(guān)于window.print()打印html網(wǎng)頁(yè)的兩種方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)window.print()打印html網(wǎng)頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript操作元素教你改變頁(yè)面內(nèi)容樣式
這篇文章主要為大家介紹了JavaScript操作元素,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-11-11
window.parent調(diào)用父框架時(shí) ie跟火狐不兼容問(wèn)題
window.parent調(diào)用父框架時(shí),ie跟火狐不兼容問(wèn)題!2009-07-07
JS實(shí)現(xiàn)的不規(guī)則TAB選項(xiàng)卡效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)的不規(guī)則TAB選項(xiàng)卡效果代碼,基于鼠標(biāo)事件動(dòng)態(tài)設(shè)置頁(yè)面元素樣式實(shí)現(xiàn)該效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
javascript面向?qū)ο笕筇卣髦^承實(shí)例詳解
這篇文章主要介紹了javascript面向?qū)ο笕筇卣髦^承,簡(jiǎn)單描述了繼承的概念、原理,并結(jié)合實(shí)例形式詳細(xì)分析了繼承的常見(jiàn)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2019-07-07
Javascript?中AJAX的圖書(shū)管理代碼實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了AJAX的圖書(shū)管理代碼實(shí)例,使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

