基于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 相关文章推荐
Google韩国首页图标动画效果
Aug 26 Javascript
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
Jul 26 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
Apr 06 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
Apr 01 Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
Feb 10 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
Jun 19 Javascript
JS class语法糖的深入剖析
Jul 07 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 将excel导入mysql
2009/11/09 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
js的三种继承方式详解
2017/01/21 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
Python性能优化的20条建议
2014/10/25 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
美国眼镜网:GlassesUSA
2017/09/07 全球购物
人力资源求职信
2014/05/25 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers