JS实现打印功能,打印后返回原页面

打印功能代码
function printSomething() {
  // 获取当前页面html代码
  var currentHtml = window.document.body.innerHTML
  // 设置打印开始位置
  var start = '<!--startprint-->'
  // 设置打印结束位置
  var end = '<!--endprint-->'
  // 获取到要打印部分的代码
  var printHtml = currentHtml.substring(currentHtml.indexOf(start) + start.length, currentHtml.indexOf(end))
  // 打印
  window.document.body.innerHTML = printHtml
  window.print()
  // 返回原界面
  window.document.body.innerHTML = currentHtml
}
完整例子代码
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>打印功能</title>
  <style>
    h1{
        text-align: center;
    }
    #main {
        width: 800px;
        height: 200px;
        margin: 0 auto;
        border: 1px solid #ccc;
    }
    p {
        text-align: center;
    }
    span {
        display: inline-block;
        width: 100px;
        height: 40px;
        background: #3385FF;
        text-align: center;
        line-height: 40px;
        color: #fff;
        float: right;
        margin-top: 20px;
        margin-right: 320px;
        cursor: pointer;
    }
  </style>
</head>
<body>
  <!--startprint-->
  <div id="main">
    <h1>xx报告</h1>
    <p>打印标题</p>
    <p>打印内容</p>
    <p>正文部分正文部分正文部分正文部分正文部分正文部分正文部分</p>
  </div>
  <!--endprint-->
  <span id="printBtn" onclick="printSomething()">打印</span>

  <script>
      
    function printSomething() {
      // 获取当前页面html代码
      var currentHtml = window.document.body.innerHTML
      // 设置打印开始位置
      var start = '<!--startprint-->'
      // 设置打印结束位置
      var end = '<!--endprint-->'
      // 获取到要打印部分的代码
      var printHtml = currentHtml.substring(currentHtml.indexOf(start) + start.length, currentHtml.indexOf(end))

      // 也可以通过id获取
      //var printHtml = document.getElementById('main').innerHTML
      
      // 打印
      window.document.body.innerHTML = printHtml
      window.print()
      // 返回原界面
      window.document.body.innerHTML = currentHtml
    }
  
  </script>
</body>
</html>
效果如下:

js实现打印功能

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值