在开发中,有时需要实现页面的局部打印功能,不打印页面上不需要的区域,

例如页面:

<div>aaaaaaaaaaaaaaaaaaa</div><div>bbbbbbbbbbbbbbbbbbb</div><div>ccccccccccccccccccc</div><div id="toPrint"style="color:red">ddddddddddddddddddddd</div><button  onclick="print()"> doPrint </button></body>

dddddddddd需要打印,两种实现方法如下:

方法一、替换body

代码:

<script type="text/javascript">function print(){var bdhtml = window.document.body.innerHTML;var prnhtml = $("#toPrint").html();window.document.body.innerHTML = prnhtml;window.print();window.document.body.innerHTML = bdhtml;};</script>

因为window.print()这个方法只能打印全部body内容,所以这个方法大体来讲,分四个步骤:

1.获取原有body里面的所有内容
var bdhtml = window.document.body.innerHTML

2.获取待打印内容
var prnhtml = document.getElementById(“toPrint”);

3.将页面body替换为待打印内容并进行打印
window.document.body.innerHTML = prnhtml;

window.print();

4.打印完成,恢复原来页面body
window.document.body.innerHTML = bdhtml;

总结:

**优点:这个方法不依赖于任何第三方插件,响应速度快
缺点:1、替换过程会改变原页面显示效果,影响用户体验。
2、body来回替换的过程中,如果原页面中有较为复杂的js渲染效果,可能会受影响

方法二:jquery.PrintArea.js局部打印 步骤:

1、引入js

因为PrintArea依赖于jquery库,所以一定先引jquery。
2.打印
$("#toPrint").printArea();

总结:

缺点:依赖于第三方插件
优点:对原页面不会有任何影响,并且逻辑简单。

ps: PrintArea还提供一些打印时的附加优化功能,例如: 1.mode:模式,当点击打印按钮时触发模式,默认为iframe,当设置为popup则会新开一个窗口页面打印。 2.popTitle:设置新开窗口的标题,默认为空。 3.popClose:完成打印后是否关闭窗口,默认为false。 具体可参考官方API

HTML局部打印,区域打印的两种实现方法总结相关推荐

  1. 利用iframe实现局部打印(区域打印)

    利用iframe实现局部打印(区域打印) <template><div id="test-page"><!-- 额外元素 --><div ...

  2. day030进程的两种创建方法,验证进程的空间隔离,join等待子进程

    本节内容: 1.操作系统的简单介绍 2.进程的两种创建方法 3.进程之间是空间隔离的, 参考文章: 一.操作系统的简单介绍 1.操作系统简单介绍 操作系统就是一个协调.管理和控制计算机硬件资源和软件资 ...

  3. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理

    Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理 代理模式 JDK动态代理 CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,指一个对象A通过持有另一个对象B,可以具有B ...

  4. OCR图片转文字两种python方法实现

    图片转文字的两种处理方法: 一种是文字识别工作都需要在网络侧完成的方式,我们称为在线识别: 另一种是不需要互联网功能的,我们称作离线识别. 在线识别方式 先看第一种,在线识别的方式.在线识别方式最大的 ...

  5. linux shell语法检查或者查看shell脚本执行过程的参数介绍及两种使用方法

    shell语法检查或者查看shell脚本执行过程的参数介绍及两种使用方法 一.常用参数概述: set -x 与 set +x 在liunx脚本中可用set -x就可有详细的日志输出,省的老是要echo ...

  6. html文件打开系统错误,win7打开word提示“无法打开文件Normal因为内容有错误”的两种解决方法...

    win7系统打开Word的时候,弹出提示"无法打开文件Normal.dotm,因为内容有错误",为什么会出现错误提示呢?小编就按照错误提示寻找文件,最后发现是Word自动生成的模板 ...

  7. 两种随机数生成方法——反函数法和舍选法

    两种随机数生成方法--反函数法和舍选法 我们知道,对于均匀分布的随机数,我们可以使用随机数生成器类似的方法生成均匀分布的随机数.包括线性同余发生器,FSR发生器等.对于非均匀分布的随机数,对于连续型随 ...

  8. 打游戏计算机内存不足,电脑玩cf游戏内存不足的两种解决方法

    电脑出现内存不足是一种较为常见的电脑故障,常见于运行大型游戏的时候发生此类故障.最近,一些小伙伴说电脑玩cf游戏内存不足,怎么办?cf穿越火线是一款第一人称射击游戏的网络游戏,如果想要运行cf游戏,不 ...

  9. 代码的两种命名方法:驼峰命名、匈牙利命名(优缺点)

    代码的两种命名方法:驼峰命名.匈牙利命名(优缺点) 一.骆驼命名法: 小驼峰法(camel方法)变量一般用小驼峰法标识. 第一个单词以小写字母开始:第二个单词的首字母大写或每一个单词的首字母都采用大写 ...

最新文章

  1. python每月定时_paypal每月订阅计划设置为每月的第一天,并进行每月定期付款 – django python...
  2. Javascript实现边框闪动
  3. cisco网络故障处理手册
  4. [agc014d] Black and White Tree(玄学树D)
  5. C# winfrom打印技术初探
  6. 使用Asp.net Core3Blazor 的全栈式网站开发体验
  7. 安全地创建和存储密码
  8. --c语言运算符_C按位运算符-能力问题和解答
  9. 【Java从0到架构师】SpringMVC - 异常处理_拦截器
  10. Expression Studio简体中文正式版+序列号.
  11. PSU更新之后是否更改数据库版本号呢
  12. 在MEF中实现延迟加载部件(转)
  13. 备份及恢复计算机名及tcp-ip配置,tcp,ip协议,修复.docx
  14. idea中代码统计工具Statistic的配置与使用
  15. 5种主流的移动端广告类型
  16. 【科创人独家】华旦天使张洁:风口是创业者的造物,投资本质是件农活
  17. minigui 3.2.0:基于miniStudio应用TrueType字体的过程(1)
  18. android时钟每秒 1,极简时钟
  19. XBee XTC/XTend 操作快速入门
  20. fer2013人脸表情数据集简介

热门文章

  1. Git 使用 —Git基本指令的使用
  2. vue 项目打包 报错
  3. 学习各种目标检测的FPN(多层次特征融合)
  4. Form表单提交数据的乱码问题
  5. Java学习笔记之键盘输入数组
  6. 目前有哪些前沿的肿瘤治疗方法正在研究?
  7. 28 H5上rtl8189ftv wifi驱动移植
  8. oracle查询当前系统时间
  9. http://bbs.ichunqiu.com/thread-10048-1-1.html
  10. 关于Markdown文件的书写语法格式