基于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 相关文章推荐
取得父标签
Nov 14 Javascript
JavaScript获取页面上某个元素的代码
Mar 13 Javascript
JQuery基础语法小结
Feb 27 Javascript
对Web开发中前端框架与前端类库的一些思考
Mar 27 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
整理关于Bootstrap导航的慕课笔记
Mar 29 Javascript
Jquery中attr与prop的区别详解
May 27 jQuery
BootStrap TreeView使用实例详解
Nov 01 Javascript
JS实现可视化文件上传
Sep 08 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
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向浏览器输出内容的4个函数总结
2014/11/17 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
行政人员岗位职责
2013/12/08 职场文书
简历的自我评价
2014/02/03 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书