window.print()打印html網(wǎng)頁的兩種方法實(shí)現(xiàn)
一、編輯打印區(qū)域
思路:
通過編輯打印的開始、結(jié)束標(biāo)記來區(qū)分打印的區(qū)域
HTML:
<!--startprint--> <div>打印的區(qū)域</div> <!--endprint-->
js:
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->"; //開始打印標(biāo)識(shí)字符串有17個(gè)字符
eprnstr="<!--endprint-->"; //結(jié)束打印標(biāo)識(shí)字符串
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); //從開始打印標(biāo)識(shí)之后的內(nèi)容
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //截取開始標(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;//重新給頁面內(nèi)容賦值;
return false;
}
二:將不需要打印的部分隱藏
思路:
在打印之前利用jQuery的$(selector).hide(speed,callback)語法將不需要的元素先隱藏,打印之后再將隱藏的元素顯示出來$(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類(可以隨便定義),這個(gè)類是專門控制顯示隱藏的
$(".hide_when_print").hide()
console.log('打印前');
//設(shè)置打印時(shí)的頁面的樣式
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)頁的兩種方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)window.print()打印html網(wǎng)頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
extjs簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了extjs簡(jiǎn)介,ExtJS為開發(fā)者在開發(fā)富客戶的B/S應(yīng)用中提供豐富的UI組件,具有統(tǒng)一的主題,便于快速開發(fā),提高效率2017-07-07
Javascript 修改String 對(duì)象 增加去除空格功能(示例代碼)
這篇文章主要介紹了Javascript 修改String 對(duì)象 增加去除空格功能(示例代碼)。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-11-11
前端如何用post的方式進(jìn)行eventSource請(qǐng)求
這篇文章主要給大家介紹了關(guān)于前端如何用post的方式進(jìn)行eventSource請(qǐng)求的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-04-04
js實(shí)現(xiàn)頁面多個(gè)日期時(shí)間倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)頁面多個(gè)日期時(shí)間倒計(jì)時(shí)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
有一段有意思的代碼-javascript現(xiàn)實(shí)多行信息
有一段有意思的代碼-javascript現(xiàn)實(shí)多行信息...2007-08-08
Bootstrap 表單驗(yàn)證formValidation 實(shí)現(xiàn)遠(yuǎn)程驗(yàn)證功能
這篇文章主要介紹了Bootstrap 表單驗(yàn)證formValidation 實(shí)現(xiàn)遠(yuǎn)程驗(yàn)證功能,需要的朋友可以參考下2017-05-05
理解javascript中的Function.prototype.bind的方法
這篇文章主要介紹了理解javascript中的Function.prototype.bind的方法,具有一定參考價(jià)值,有興趣的可以了解一下。2017-02-02
javascript實(shí)現(xiàn)簡(jiǎn)單小鋼琴有聲彈奏效果
用HTML5+javascript實(shí)現(xiàn)的小鋼琴,按下鋼琴鍵上的相應(yīng)字母用或用鼠標(biāo)點(diǎn)擊鋼琴鍵發(fā)聲,javascript代碼包含了對(duì)鼠標(biāo)按下、移動(dòng)和松開,以及鍵盤按下的事件監(jiān)聽2024-02-02

