Chrome下最简分页打印方案

如果你需要直接打印当前页面,那么你不用再往下看了,直接使用浏览器自带的工具栏中的“打印”即可。如果你的实际需求是页面上显示很多内容,但你只想打印指定区域的内容,进一步可能还想把本来显示在一起的内容,分成好几页进行打印,那么本文希望能够提供一个最简方案。

实现的方法其实很简单,直接使用JavaScript自带window.print()方法即可实现类似点击浏览器进行打印的效果,不过这种方式是打印当前窗口的内容(即body的整个内容)。如果只想打印指定区域的内容怎么办呢?最简单的思路是将body的内容先替换成指定区域的内容,再进行内容的还原即可。如果指定区域本就在一页内容里面,需要硬拆成好几页进行打印怎么办呢?这里借助下CSS里面的打印属性即可,在打印时会根据页面样式把内容分成自定义的多页。

下面直接贴代码:

<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
	<div id="printContent">
		<div id="page1">这是第一页内容</div>
		<!--这里用到分页样式-->
		<div style="page-break-after: always;"></div>
			
		<div id="page2">这是第二页内容</div>  
		<div style="page-break-after: always;"></div>
			
		<div id="page3">这是第三页内容</div>
	</div>
	<div>
		<input type="button" id="printButton" value="打印" />
	</div>
	
    <script src="js/jquery-1.11.1.js"></script>
    <script>
		$("#printButton").click(function(){
			var bodyContent = $('body').html();
			var printContent = $('#printContent').html();
			//将body内容替换后进行打印操作,再把body内容还原
			$('body').html(printContent);
			window.print();
			$('body').html(bodyContent);
			}
		);
	</script>
  </body>
</html> 

这里为了写法简洁,引用了Jquery插件,实际只用原生JS完全就能搞定了,思路是一致的就行。如果你需要分很多页,那么把CSS分页样式抽出来,写在样式表里面再引用就可以了。另外该示例只支持Chrome下的打印。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值