基于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 相关文章推荐
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
function, new function, new Function之间的区别
Mar 08 Javascript
JQuery的一些小应用收集
Mar 27 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
JavaScript实现拖动对话框效果的实现代码
Oct 12 Javascript
JS前端轻量fabric.js系列之画布初始化
Aug 05 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中的日期处理方法集锦
2007/01/02 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
document.write的几点使用心得
2014/05/14 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
详解Python传入参数的几种方法
2019/05/16 Python
python 搜索大文件的实例代码
2019/07/08 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
2014年幼儿园个人工作总结
2014/11/10 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫