基于jQuery实现网页打印功能


Posted in Javascript onDecember 01, 2015

直接上代码

<!DOCTYPE html>
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <title>index</title>
</head>
<body>
  
  <div style="text-align:center; margin-top: 30px">
    <div id="printArea">
      <div>......文本打印区域......</div>
      <div>......文本打印区域......</div>
      <div>......文本打印区域......</div>
      <div>......文本打印区域......</div>
      <div>......文本打印区域......</div>
    </div>  
  
    <br>
    <br>
  
    <input id="btnPrint" type="button" value="打印文本区域"></input> 
    <input id="btnPrintFull" type="button" value="全屏打印"></input> 
  </div>
</body>

<script src="js/jquery-2.1.4.js"></script>
<script src="js/jquery.PrintArea.min.js"></script> 

<script> 
  $("#btnPrint").click(function(){  
    $("#printArea").printArea(); 
  }); 

  $("#btnPrintFull").click(function(){  
    $("body").printArea(); 
  }); 
  
</script>

</html>

代码 jquery.PrintArea.min.js:

(function(c){function g(){var b="<head><title>"+d.popTitle+"</title>";c(document).find("link").filter(function(){return"stylesheet"==c(this).attr("rel").toLowerCase()}).filter(function(){var a=c(this).attr("media");return void 0==a?!1:""==a.toLowerCase()||"print"==a.toLowerCase()}).each(function(){b+='<link type="text/css" rel="stylesheet" href="'+c(this).attr("href")+'" >'});return b+="</head>"}function h(b){return'<body><div class="'+c(b).attr("class")+'">'+c(b).html()+"</div></body>"}function k(b){c("input,select,textarea",b).each(function(){var a=c(this).attr("type");"radio"==a||"checkbox"==a?c(this).is(":not(:checked)")?this.removeAttribute("checked"):this.setAttribute("checked",!0):"text"==a?this.setAttribute("value",c(this).val()):"select-multiple"==a||"select-one"==a?c(this).find("option").each(function(){c(this).is(":not(:selected)")?this.removeAttribute("selected"):this.setAttribute("selected",!0)}):"textarea"==a&&(a=c(this).attr("value"),c.browser.mozilla?this.firstChild?this.firstChild.textContent=a:this.textContent=a:this.innerHTML=a)});return b}function l(){var b=d.id,a;try{a=document.createElement("iframe"),document.body.appendChild(a),c(a).attr({style:"border:0;position:absolute;width:0px;height:0px;left:0px;top:0px;",id:b,src:""}),a.doc=null,a.doc=a.contentDocument?a.contentDocument:a.contentWindow?a.contentWindow.document:a.document}catch(e){throw e+". iframes may not be supported in this browser.";}if(null==a.doc)throw"Cannot find document.";return a}function m(){var b;b="location=no,statusbar=no,directories=no,menubar=no,titlebar=no,toolbar=no,dependent=no,width=595px,height=842px,top=0,left=0,toolbar=no,scrollbars=no,personalbar=no"+(",resizable=yes,screenX="+d.popX+",screenY="+d.popY+"");b=window.open("","_blank",b);b.doc=b.document;return b}var f=0,n={mode:"iframe",popHt:500,popWd:400,popX:200,popY:200,popTitle:"",popClose:!1},d={};c.fn.printArea=function(b){c.extend(d,n,b);f++;c("[id^=printArea_]").remove();b=k(c(this));d.id="printArea_"+f;var a,e;switch(d.mode){case"iframe":e=new l;a=e.doc;e=e.contentWindow||e;break;case"popup":e=new m,a=e.doc}a.open();a.write(("iframe"!=d.mode&&d.strict?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01'+(0==d.strict?" Trasitional":"")+'//EN" "http://www.w3.org/TR/html4/'+(0==d.strict?"loose":"strict")+'.dtd">':"")+"<html>"+g()+h(b)+"</html>");a.close();e.focus();e.print();"popup"==d.mode&&d.popClose&&e.close()}})(jQuery);

二、效果图

打印文本区域:

基于jQuery实现网页打印功能

全屏打印:

 基于jQuery实现网页打印功能

还有一些高手提出的window.print() 方法也是可以滴,在这就不一一介绍了,希望大家认真研究网页打印功能的实现方法,小编和大家共同进步。

Javascript 相关文章推荐
js的逻辑运算符 ||
May 31 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
Dec 08 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
Aug 15 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
javascript自定义事件功能与用法实例分析
Nov 08 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
Dec 06 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
Nov 21 Javascript
JavaScript实现拖拽效果
Mar 16 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 #Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 #Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 #Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
Dec 01 #Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
Dec 01 #Javascript
快速学习jQuery插件 Form表单插件使用方法
Dec 01 #Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 #Javascript
You might like
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
Python中文竖排显示的方法
2015/07/28 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
详解Python 解压缩文件
2019/04/09 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
什么是接口(Interface)?
2013/02/01 面试题
槐乡的孩子教学反思
2014/04/27 职场文书
管辖权异议上诉状
2015/05/23 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书