基于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 相关文章推荐
document.write的几点使用心得
May 14 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
理解JavaScript表单的基础知识
Jan 25 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
javascript回调函数的概念理解与用法分析
May 27 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
对layer弹出框中icon数字参数的说明介绍
Sep 04 Javascript
JS前端宏任务微任务及Event Loop使用详解
Jul 23 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
如何用php获取文件名后缀
2013/06/09 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
JavaScript入门教程 Cookies
2009/01/31 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
python实现挑选出来100以内的质数
2015/03/24 Python
Python常用小技巧总结
2015/06/01 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
浅谈Python NLP入门教程
2017/12/25 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
pytorch 模型可视化的例子
2019/08/17 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
python包的导入方式总结
2021/03/02 Python
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
大学生就业求职信
2014/06/12 职场文书
委托公证书样本
2015/01/23 职场文书
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫