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

Javascript 頁面打印含代碼

Javascript – 頁面打印

在Web開發中,我們經常需要實現頁面的打印功能,以便用戶可以將頁面內容保存到紙質文檔中。愛掏網 - it200.com在經過長時間的發展,現在大多數瀏覽器都提供了打印的API,使得前端開發者們可以方便地實現頁面的打印功能。愛掏網 - it200.com

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

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

通過上面的代碼,我們可以在頁面上創建一個按鈕,用戶點擊后會彈出打印對話框,簡單便捷。愛掏網 - it200.com

打印樣式

但是,如果直接使用上面的代碼,打印出來的頁面可能會非常難看,因為樣式等視覺效果并沒有得到保留。愛掏網 - it200.com因此,我們需要通過樣式表的方式來設置打印時的樣式。愛掏網 - it200.com

我們可以通過創建一個專門的打印樣式表來實現。愛掏網 - it200.com我們可以在HTML頭部中通過<link>元素來指定打印樣式表:

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

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

針對使用了Bootstrap等框架的頁面,打印時需要進行一些額外的樣式設置。愛掏網 - it200.com例如,需要將頁面中的col-*等布局和柵格類忽略掉,以免在打印時影響視線。愛掏網 - it200.com我們可以在打印樣式表中添加以下樣式。愛掏網 - 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類的寬度設為了auto,同時將所有柵格類的位置按照左對齊的方式重新排列。愛掏網 - it200.com這樣,在進行打印操作時,頁面就可以自動進行排版,同時保證當前頁面中使用的樣式仍然能夠保留下來。愛掏網 - it200.com

打印事件

有時候,我們需要在用戶進行打印操作時執行一些特定的操作,比如發送后臺請求、保存打印日志等。愛掏網 - it200.com此時,我們需要在打印事件中添加相應的代碼。愛掏網 - it200.com

瀏覽器提供了兩個打印事件:onbeforeprintonafterprint愛掏網 - it200.com當用戶點擊打印按鈕后,瀏覽器會首先觸發onbeforeprint事件,其次才會彈出打印窗口。愛掏網 - it200.com最終,當用戶關閉打印窗口后,瀏覽器會觸發onafterprint事件。愛掏網 - it200.com

我們可以通過使用window.matchMedia方法來監聽這兩個事件。愛掏網 - it200.com

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

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

示例代碼

下面是一個包含打印樣式和打印事件的示例代碼。愛掏網 - it200.com

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

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

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

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

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

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

結論

通過本文的介紹,我們了解了如何使用Javascript實現頁面的打印功能,以及如何設置打印樣式和添加打印事件。愛掏網 - it200.com在實際項目中,我們可以根據具體需求進行相應的修改和擴展,讓打印功能更加符合實際需求。愛掏網 - it200.com

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 国产精品久久久久久久毛片 | 在线精品亚洲欧美日韩国产 | 在线免费视频一区 | 成人免费视频播放 | 99av成人精品国语自产拍 | 免费在线观看一区二区 | 成人国产精品久久久 | 二区三区视频 | 日韩在线中文字幕 | 欧美成人a∨高清免费观看 欧美日韩中 | 成人免费视频 | 中文字幕 视频一区 | 久久精品av麻豆的观看方式 | 99免费精品 | 亚洲成人三级 | 99精品视频在线观看 | 亚洲一区成人 | 亚洲一区 中文字幕 | 国产免费高清 | 精品免费国产一区二区三区四区介绍 | 日韩欧美在线视频播放 | 亚洲一区二区av | 国产色网站 | 欧洲精品在线观看 | 三级av在线| 中文一区 | 国产伦一区二区三区四区 | 日韩亚洲视频 | 91精品在线播放 | 三级成人在线 | 亚洲精品二区 | 国产精品免费一区二区 | 国产一区二区三区在线 | 天天天天操 | 99pao成人国产永久免费视频 | 国产福利在线看 | 国产精品区二区三区日本 | 狠狠操狠狠干 | 日韩福利 | 中文字幕一区二区三区乱码在线 | 午夜无码国产理论在线 |