基于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 相关文章推荐
js阻止事件追加的具体实现
Oct 15 Javascript
node.js中的require使用详解
Dec 15 Javascript
jQuery实现根据类型自动显示和隐藏表单
Mar 18 Javascript
JS实现IE状态栏文字缩放效果代码
Oct 24 Javascript
Web安全测试之XSS实例讲解
Aug 15 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
koa2实现登录注册功能的示例代码
Dec 03 Javascript
单线程JavaScript实现异步过程详解
May 19 Javascript
全面解析JavaScript Module模式
Jul 24 Javascript
Vue $emit()不能触发父组件方法的原因及解决
Jul 28 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的面试题集
2006/11/19 PHP
简单采集了yahoo的一些数据
2007/02/14 PHP
php检查页面是否被百度收录
2015/10/28 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
PHP的PDO连接讲解
2019/01/24 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
python3访问字典里的值实例方法
2020/11/18 Python
python 如何引入协程和原理分析
2020/11/30 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
医院总经理岗位职责
2014/02/04 职场文书
公务员保密承诺书
2014/03/27 职场文书
开展读书活动总结
2014/06/30 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
导游词之神仙居景区
2019/11/15 职场文书
Python 阶乘详解
2021/10/05 Python
TS 类型收窄教程示例详解
2022/09/23 Javascript