基于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 相关文章推荐
IE/FireFox具备兼容性的拖动代码
Aug 13 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
Nov 05 Javascript
JS中toFixed()方法引起的问题如何解决
Nov 20 Javascript
jQuery cdn使用介绍
May 08 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
jQuery ajax分页插件实例代码
Jan 27 Javascript
微信小程序图片宽100%显示并且不变形
Jun 21 Javascript
利用Vue.js实现求职在线之职位查询功能
Jul 03 Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
babel的使用及安装配置教程
Feb 22 Javascript
基于vue和bootstrap实现简单留言板功能
May 30 Javascript
Ajax实现异步加载数据
Nov 17 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 preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
vue使用recorder.js实现录音功能
2019/11/22 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
python如何为创建大量实例节省内存
2018/03/20 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
反邪教观后感
2015/06/11 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书