vue-print-nb浏览器打印核心原理

看了vue-print-nb的源码之后,这里实现了一下它的核心部分原理,没有实现获取css的部分,要用下面功能在业务中,需要写行内样式。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div{
			width: 100px;
			height: 50px;
			border: 1px solid #000;
		}
	</style>
</head>
<body>
	<div>无关内容1</div>
	<div>无关内容2</div>
	<div>无关内容3</div>
	<button id="clickPrint">打印</button>
	<script>
		let iframe = document.createElement('iframe');
		iframe.setAttribute('id','iframe');
        iframe.style.border = '0px';
        iframe.style.position = 'absolute';
        iframe.style.width = '0px';
        iframe.style.height = '0px';
        iframe.style.right = '0px';
        iframe.style.top = '0px';

		document.body.appendChild(iframe);
		let iframeWindow = document.getElementById('iframe').contentWindow;
		let iframeDocument = iframeWindow.document;
		iframeDocument.body.innerHTML = `
		<div>要打印的内容1</div>
		<div>要打印的内容2</div>
		<div>要打印的内容3</div>
		 `
		 document.getElementById('clickPrint').addEventListener('click', e=> {
		   iframeWindow.print()
		 });
	</script>
</body>
</html>

页面显示
在这里插入图片描述
点击打印
在这里插入图片描述

发布了96 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_35958891/article/details/103418998