久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

JS實(shí)現(xiàn)頁面打?。ㄕw,、局部)

 花心的程序員 2020-08-31

我們在網(wǎng)頁開發(fā)過程中經(jīng)常會有打印頁面的需求,,通過JS來實(shí)現(xiàn)的方法有很多,,這里我做了一個(gè)整理,,供大家參考。

方式一:window.print()

整體打印

1
<a href="javascrīpt:window.print()" rel="external nofollow" target="_self">打印</a>

現(xiàn)在就輕松實(shí)現(xiàn)了頁面的打印,,但是這種方式會將整個(gè)頁面打印,,如果想要實(shí)現(xiàn)指定區(qū)域的打印需要通過下面的設(shè)置

局部打印

首先,在html中,,通過star和end來標(biāo)記打印區(qū)域

1
2
3
4
5
6
7
8
<h1>這塊內(nèi)容不需要打印</h1>
<!--startprint-->
<div class="content">
  這里是需要打印的內(nèi)容
    .....
</div>
<!--endprint-->
<h1>這塊內(nèi)容不需要打印</h1>

然后,,在點(diǎn)擊事件中添加如下代碼

1
2
3
4
5
6
7
8
9
function doPrint() {  
    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();  
}

過濾打印區(qū)域的內(nèi)容

例如

1
2
3
4
5
6
7
8
<!--startprint-->
<div class="content">
  <button class="noprint">預(yù)覽</button>
  <button class="noprint">打印</button>
   這里是需要打印的內(nèi)容
    .....
  </div>
<!--endprint-->

上面的預(yù)覽和打印按鈕不希望打印,如果要過濾的話可以做下面的樣式設(shè)置

1
2
3
4
5
6
7
<style type="text/css">
  @media print {
    .noprint{
      display: none;
    }
  }
</style>

or

1
2
3
4
5
<style type="text/css" media="print">
  .noprint{
    display: none;
  }
</style>

兩種寫法任選其一

分頁打印

使用 window.print() 打印時(shí),,如果內(nèi)容超出會自動(dòng)分頁,。但是我們?nèi)绻枰远x分頁范圍,如碰到表格分頁打印,,可以通過進(jìn)行如下設(shè)置:

1
2
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="page-break-after:always" >
</table>

方式二,、jqprint()

jqprint是一個(gè)基于jQuery編寫的頁面打印的一個(gè)小插件,但是不得不承認(rèn)這個(gè)插件確實(shí)很厲害,,最近的項(xiàng)目中幫了我的大忙,,在Web打印的方面,前端的打印基本是靠window.print()的方式進(jìn)行打印的,,而這個(gè)插件在其基礎(chǔ)上進(jìn)行了進(jìn)一步的封裝,,可以輕松實(shí)現(xiàn)打印網(wǎng)頁上的某個(gè)區(qū)域,這是個(gè)亮點(diǎn),。

參考網(wǎng)址:https://www.jb51.net/article/102230.htm

請注意!很多朋友遇到 Cannot read property 'opera' of undefined 錯(cuò)誤問題是juqery版本兼容問題

解決方法:加入遷移輔助插件 jquery-migrate-1.0.0.js可解決版本問題

引入

1
2
<script language="javascript" src="jquery-1.4.4.min.js"></script>
<script language="javascript" src="jquery.jqprint-0.3.js"></script>

js

1
2
3
4
5
<script language="javascript">
function a(){
    $("#ddd").jqprint();
  }
</script>

html

1
2
3
4
5
6
7
8
9
10
11
12
<div id="ddd">
  <table>
    <tr>
      <td>test</td>
      <td>test</td>
      <td>test</td>
      <td>test</td>
      <td>test</td>
    </tr>
  </table>
</div>
<input type="button" onclick=" a()" value="打印"/>

設(shè)置模板打印

1
2
3
4
5
6
$("#printContainer").jqprint({
   debug: false, //如果是true則可以顯示iframe查看效果(iframe默認(rèn)高和寬都很小,,可以再源碼中調(diào)大),默認(rèn)是false
   importCSS: true, //true表示引進(jìn)原來的頁面的css,,默認(rèn)是true,。(如果是true,先會找$("link[media=print]"),,若沒有會去找$("link")中的css文件)
   printContainer: true, //表示如果原來選擇的對象必須被納入打?。ㄗ⒁猓涸O(shè)置為false可能會打破你的CSS規(guī)則),。
   operaSupport: true//表示如果插件也必須支持歌opera瀏覽器,在這種情況下,,它提供了建立一個(gè)臨時(shí)的打印選項(xiàng)卡,。默認(rèn)是true
});

附言

另外還可以使用html 標(biāo)簽<object>引入Webbrowser控件(只兼容IE)或者調(diào)用windows底層打印,報(bào)安全警告,,不建議使用(不支持局部打?。?br>

這里只介紹兩種方式,希望對大家的學(xué)習(xí)有所幫助,,也希望大家多多支持腳本之家,。

如您對本文有所疑義或者有任何需求,,請點(diǎn)擊訪問腳本社區(qū),百萬網(wǎng)友為您解惑!

原文鏈接:http://www.jianshu.com/p/40dfd2d6c344?utm_source=tuicool&utm_medium=referral

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多