vue打印指定DOM节点和打印隐藏的dom节点

本文介绍了在Vue项目中如何利用jQuery.print.js插件打印指定的DOM节点,包括隐藏的DOM节点。首先,文章分享了一个成功的案例,展示了在页面中打印指定表单内容的操作。接着,详细阐述了准备插件的步骤,包括下载jQuery.print.js和jQuery,以及通过CDN或本地文件引用。然后,讲解了如何在Vue项目中引入这两个库,并提供了在main.js中全局注册的方法。在打印指定DOM节点部分,文章提到了给需要打印的元素添加ID并创建打印函数。最后,针对打印隐藏DOM节点,文章提出了一个技巧,即在外层包裹一个div并动态控制其display属性来实现打印效果。

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

成功案例

在页面里打印指定表单内容
在这里插入图片描述

准备插件

这里需要用到jQuery.print.jsjQuery两个插件。
因为print.js的限制,目前官方支持的jQuery版本如下如图所示:https://www.npmjs.com/package/jQuery.print
官网测试使用的jquery版本

下载地址

  1. jQuery.print.js
  2. jQuery-3.1.1 可以自己选择版本

方法一:直接CDN外链引用

<!--jquery插件-->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<!-- print插件-->
<script src="https://cdn.bootcdn.net/ajax/libs/jQuery.print/1.6.2/jQuery.print.min.js"></script>

在这里插入图片描述

方法二:命令行引用和本地文件引用

引入jQuery

1、使用npm命令安装(安装指定版本的jquery)

npm install jquery@3.1.1 --save /* 全局安装 */

2、根目录下找到vue.config.js文件,在开头添加webpack引入

const webpack = require('webpack')  //添加webpack

3、vue.config.js文件,module.exports对象里找到 configureWebpack,添加plugins的内容

 configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
        jquery: "jquery",
        "window.jQuery": "jquery"
      })
    ],
  },

4、在main.js 入口文件全局引入jQuery

import $ from 'jquery'; // 全局引入jQuery

5、重新编译项目使修改生效

npm run dev & npm run serve

在这里插入图片描述

引入jQuery.print.js

1、下载js
https://www.bootcdn.cn/jQuery.print/
或者
https://cdn.bootcdn.net/ajax/libs/jQuery.print/1.6.2/jQuery.print.js
2、将js保存至项目里面
在这里插入图片描述
3、在main.js里面全局注册jQuery.print.js

jQuery.print 必须放在 jquery 后面

import $ from 'jquery'; // 引入jQuery
import "@/assets/js/jQuery.print"; // 顺序必须在jquery下面

打印指定DOM节点

jquery.print.js的教程如下:

1、给需要打印的DOM节点绑定id属性printRoot,名称可以自己选择

 <div id="printRoot">  我是打印节点的内容 </div>

2、在method里创建打印函数

// 打印
    printGuide() {
      var html = $("#printRoot").clone(); // 这里的#printRoot 就是上一步命名的id
      $("#printRoot").print({
        iframe: true, // 是否使用一个iframe来替代打印表单的弹出窗口,true为在本页面进行打印,false就是说新开一个页面打印,默认为true
        globalStyles: true, // 是否包含父文档的样式,默认为true
        debug: false,
        importCSS: true,
        printContainer: true,
        operaSupport: false
      });
    }

3、设置点击事件,触发打印

<div @click="printGuide">
  <span>打印导诊单</span>
</div>

在这里插入图片描述
4、效果
在这里插入图片描述

打印隐藏DOM节点

方法:就是在打印DOM节点外层嵌套一个div,设置outerContainerdisplay:none;,然后在打印之前设置display:block;,打印完成之后再设置dispaly:none;
1、外层嵌套div

<div id="outerContainer" > // 不能用行内样式写display,不然后面修改不生效
    <div id="printRoot">  我是打印节点的内容 </div>
</div>

2、将外层div设置display:none;

#outerContainer { 
  display: none; // 正式环境不能注释
}

3、打印时先显示外层DIV,打印完成之后,再隐藏外层DIV

// 点击打印导诊单
printGuide() {
  document.getElementById('outerContainer').style.display = 'block'; // 打印前显示dom节点
  var html = $("#printRoot").clone(); // 这里的#printRoot 就是上一步命名的id
  $("#printRoot").print({
    iframe: true, // 是否使用一个iframe来替代打印表单的弹出窗口,true为在本页面进行打印,false就是说新开一个页面打印,默认为true
    globalStyles: true, // 是否包含父文档的样式,默认为true
    debug: false,
    importCSS: true,
    printContainer: true,
    operaSupport: false
  });
  document.getElementById('outerContainer').style.display = 'none'; // 打印后隐藏dom节点
},

4、效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TuoMei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值