【实现web打印与打印按钮的监听】

该代码示例展示了如何使用JavaScript实现web页面的打印功能,并监听打印按钮的点击事件。通过创建iframe,将要打印的内容注入iframe中,然后设置打印前和打印后的回调函数,最后调用打印窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

咱话不多说,这是比较完整的实现web打印与监听打印按钮的代码示例,希望可以帮助到你

 toPrintPayment() {
 	  //需要打印的内容
      const printContent = document.querySelector('.paymentContain').outerHTML
      const iframe = document.createElement('iframe')
      iframe.setAttribute('style', 'position: absolute; width: 0; height: 0;')
      document.body.appendChild(iframe)

      const iframeDoc = iframe.contentWindow.document
      
      //iframeDoc的样式
      iframeDoc.write(`<style media="print">
      @page {
        size: auto;
        margin: 0mm;
      }
     .PageNext{page-break-after: always;}
      </style>`)
      
	 //iframeDoc的dom结构
      iframeDoc.write(
        '<div>' +
          printContent +
        '</div>'
      )
      
      let beforePrint = function () {
        console.log('打印前')
      }
      //定义打印后事件
      let afterPrint = function () {
        console.log('打印后')
      }
      
      if (iframe.contentWindow) {
        //打印前事件
        iframe.contentWindow.onbeforeprint = beforePrint
        //打印后事件
        iframe.contentWindow.onafterprint = afterPrint
      }
      setTimeout(function () {
        //.print()打开打印窗口
        iframe.contentWindow?.print()
        //这里的iframe只是为了给浏览器提供一个打印的对象,打印窗口打开后,记得从<body> </body>移除
        document.body.removeChild(iframe)
      }, 300)
    },

如果这篇文章使你少走了一次弯路,记得点赞支持下哦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值