本文主要介绍如何在框架内实现网页打印功能,即在不用获取DOM的情况下将网页打印出来;
应公司项目开发需求,需要在react框架基础上实现网页的打印,普通的js打印都是通过获取DOM元素来确定需要打印的区域,然而React一类的框架采用虚拟DOM,无法获取真实DOM元素,想到一个办法就是前端实现一个有当前页面样式的HTML模板,发送到后端,后端把模板赋值返回给前端,前端获取到HTML文件,打印这个文件便可。当然这并不适用于任何情况,但也是网页打印的一种方式。
实现步骤
- 写一个HTML模板文件
贡献我的模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>打印模板</title>
<style>
</style>
</head>