一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

Javascript 頁面打印含代碼

Javascript – 頁面打印

在Web開發(fā)中,我們經(jīng)常需要實(shí)現(xiàn)頁面的打印功能,以便用戶可以將頁面內(nèi)容保存到紙質(zhì)文檔中。愛掏網(wǎng) - it200.com在經(jīng)過長時(shí)間的發(fā)展,現(xiàn)在大多數(shù)瀏覽器都提供了打印的API,使得前端開發(fā)者們可以方便地實(shí)現(xiàn)頁面的打印功能。愛掏網(wǎng) - it200.com

在Javascript中,我們可以通過調(diào)用window.print()方法來實(shí)現(xiàn)頁面的打印。愛掏網(wǎng) - it200.com該方法沒有任何參數(shù),調(diào)用方法非常簡單,可以直接在頁面的某個(gè)按鈕上綁定點(diǎn)擊事件。愛掏網(wǎng) - it200.com

<button onclick="window.print()">打印</button>

通過上面的代碼,我們可以在頁面上創(chuàng)建一個(gè)按鈕,用戶點(diǎn)擊后會(huì)彈出打印對(duì)話框,簡單便捷。愛掏網(wǎng) - it200.com

打印樣式

但是,如果直接使用上面的代碼,打印出來的頁面可能會(huì)非常難看,因?yàn)闃邮降纫曈X效果并沒有得到保留。愛掏網(wǎng) - it200.com因此,我們需要通過樣式表的方式來設(shè)置打印時(shí)的樣式。愛掏網(wǎng) - it200.com

我們可以通過創(chuàng)建一個(gè)專門的打印樣式表來實(shí)現(xiàn)。愛掏網(wǎng) - it200.com我們可以在HTML頭部中通過<link>元素來指定打印樣式表:

<link  rel="stylesheet" media="print">

通過media屬性指定樣式表僅在打印時(shí)生效,不影響瀏覽器的顯示效果。愛掏網(wǎng) - it200.com

針對(duì)使用了Bootstrap等框架的頁面,打印時(shí)需要進(jìn)行一些額外的樣式設(shè)置。愛掏網(wǎng) - it200.com例如,需要將頁面中的col-*等布局和柵格類忽略掉,以免在打印時(shí)影響視線。愛掏網(wǎng) - it200.com我們可以在打印樣式表中添加以下樣式。愛掏網(wǎng) - it200.com

@media print {
  .container, .container-fluid {
    width: auto !important;
  }

  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12,
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12,
  .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
  }
}

上面的代碼中,我們將.container.container-fluid類的寬度設(shè)為了auto,同時(shí)將所有柵格類的位置按照左對(duì)齊的方式重新排列。愛掏網(wǎng) - it200.com這樣,在進(jìn)行打印操作時(shí),頁面就可以自動(dòng)進(jìn)行排版,同時(shí)保證當(dāng)前頁面中使用的樣式仍然能夠保留下來。愛掏網(wǎng) - it200.com

打印事件

有時(shí)候,我們需要在用戶進(jìn)行打印操作時(shí)執(zhí)行一些特定的操作,比如發(fā)送后臺(tái)請(qǐng)求、保存打印日志等。愛掏網(wǎng) - it200.com此時(shí),我們需要在打印事件中添加相應(yīng)的代碼。愛掏網(wǎng) - it200.com

瀏覽器提供了兩個(gè)打印事件:onbeforeprintonafterprint愛掏網(wǎng) - it200.com當(dāng)用戶點(diǎn)擊打印按鈕后,瀏覽器會(huì)首先觸發(fā)onbeforeprint事件,其次才會(huì)彈出打印窗口。愛掏網(wǎng) - it200.com最終,當(dāng)用戶關(guān)閉打印窗口后,瀏覽器會(huì)觸發(fā)onafterprint事件。愛掏網(wǎng) - it200.com

我們可以通過使用window.matchMedia方法來監(jiān)聽這兩個(gè)事件。愛掏網(wǎng) - it200.com

window.onbeforeprint = function () {
  // 在打印前執(zhí)行的操作
};

window.onafterprint = function () {
  // 在打印后執(zhí)行的操作
};

示例代碼

下面是一個(gè)包含打印樣式和打印事件的示例代碼。愛掏網(wǎng) - it200.com

<!DOCTYPE html>
<html>
<head>
  <title>打印示例</title>
  <link  rel="stylesheet" media="print">
</head>
<body>
  <h1>打印示例</h1>
  <p>這是一段測(cè)試數(shù)據(jù)。愛掏網(wǎng) - it200.com</p>
  <button id="print-btn">打印</button>

  <!-- 在頁面底部添加一個(gè)隱藏的提示框 -->
  <div id="print-tip" style="display: none;">正在打印,請(qǐng)稍候...</div>

  <script>
    // 監(jiān)聽打印事件
    window.onbeforeprint = function() { 
      // 在打印前顯示提示框
      document.getElementById("print-tip").style.display = "block";
      // 發(fā)送日志請(qǐng)求
      sendLog();
    };

    window.onafterprint = function() { 
      // 在打印后隱藏提示框
      document.getElementById("print-tip").style.display = "none";
    };

    // 綁定打印按鈕的點(diǎn)擊事件
    var printBtn = document.getElementById("print-btn");
    printBtn.onclick = function() {
      // 顯示提示框
      document.getElementById("print-tip").style.display = "block";
      // 延時(shí)1秒后執(zhí)行打印操作
      setTimeout(function() {
        window.print();
      }, 1000);
    };

    // 發(fā)送日志請(qǐng)求
    function sendLog() {
      // 將請(qǐng)求代碼省略
      console.log("正在發(fā)送日志請(qǐng)求...");
    }
  </script>
</body>
</html>

結(jié)論

通過本文的介紹,我們了解了如何使用Javascript實(shí)現(xiàn)頁面的打印功能,以及如何設(shè)置打印樣式和添加打印事件。愛掏網(wǎng) - it200.com在實(shí)際項(xiàng)目中,我們可以根據(jù)具體需求進(jìn)行相應(yīng)的修改和擴(kuò)展,讓打印功能更加符合實(shí)際需求。愛掏網(wǎng) - it200.com

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評(píng)論
更多 網(wǎng)友評(píng)論0 條評(píng)論)
暫無評(píng)論

返回頂部

主站蜘蛛池模板: 亚洲综合视频 | 99精品久久 | 久久国产欧美一区二区三区精品 | av日韩精品 | 久久91| 国产精品爱久久久久久久 | 国内自拍视频在线观看 | 久久久久久国产精品 | 亚洲精品日韩综合观看成人91 | 久久久久亚洲精品中文字幕 | 久久精品国产99国产 | 在线视频a | 国产精品九九九 | 91麻豆精品国产91久久久久久 | 九九精品网 | 福利二区 | 日韩色在线 | 欧美精品在线一区二区三区 | 亚洲第一av | 国产日韩久久久久69影院 | 亚洲欧美国产一区二区三区 | 中文字幕在线国产 | 欧美在线a| 国产精品亚洲成在人线 | 91九色在线观看 | 91在线最新 | www久久久 | 蜜臀网 | 日韩成人在线播放 | 欧美视频成人 | 91精品免费视频 | 日韩国产高清在线观看 | 欧美一级免费片 | 久久精品免费观看 | 精品欧美一区二区三区精品久久 | 一区二区三区国产在线观看 | 不卡的av在线 | 国产九一精品 | 午夜成人免费电影 | 国产日韩一区二区三免费 | 日韩av在线免费 |