vue项目中的打印问题---vue-print-nb

前言: 最近之前的vue项目中,文章详情页面的打印功能出了问题,之前用的是vue-print-nb,现在有的客户反馈出现打印页面不完整的问题(客户用的国产的浏览器),所以想换一种写法处理这个问题,发现js原生就有打印的方法print()

下面记录下之前用的和现在的方法

之前用的方法:vue-print-nb

  1. 安装

    npm install vue-print-nb --save
    
  2. 安装好以后在main.js文件中引入

    import Print from 'vue-print-nb'
    Vue.use(Print);  //注册
    
  3. 使用

    <div id="printTest" >
       <p>明月照于山间</p> 
    </div>
    <button v-print="'#printTest'">打印</button>
    

现在用方法:print():用于打印当前窗口的内容

  • 打印整个页面

     function dayin(){
       window.print();  
     }
    
  • 打印部分页面

    function dayin(){
      bdhtml=window.document.body.innerHTML;//获取当前页的html代码  
      sprnstr="<!--startprint-->";//设置打印开始区域  
      eprnstr="<!--endprint-->";//设置打印结束区域  
      prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html  
      prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html 
      window.document.body.innerHTML=prnhtml;  
      window.print();  
    }
    
  • 关闭打印框后,打开打印框前操作

    window.onbeforeprint = function() { 打印之前要做的操作 };
    window.onafterprint = function() { 打印之后要做的操作 };
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值