基于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 相关文章推荐
浅谈JavaScript字符集
May 22 Javascript
Javascript数据结构与算法之列表详解
Mar 12 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
小程序如何构建骨架屏
May 29 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
JavaScript中的相等操作符使用详解
Dec 21 Javascript
JavaScript类的继承多种实现方法
May 30 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
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
Python制作爬虫抓取美女图
2016/01/20 Python
实践Vim配置python开发环境
2018/07/02 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
Java的类与C++的类有什么不同
2014/01/18 面试题
最新创业融资计划书
2014/01/19 职场文书
校庆活动方案
2014/03/31 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
产品质量保证书
2014/04/29 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers