基于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 相关文章推荐
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 Javascript
基于jQuery的图片大小自动适应实现代码
Nov 17 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
Aug 18 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
Feb 17 Javascript
ionic 3.0+ 项目搭建运行环境的教程
Aug 09 Javascript
vue-scroller记录滚动位置的示例代码
Jan 17 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
May 17 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
基于vue和websocket的多人在线聊天室
Feb 01 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 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
CI框架中cookie的操作方法分析
2014/12/12 PHP
php实现简单文件下载的方法
2015/01/30 PHP
PHP数组操作类实例
2015/07/11 PHP
Joomla开启SEF的方法
2016/05/04 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
python 换位密码算法的实例详解
2017/07/19 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
优秀员工推荐信
2014/05/10 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
2015年司法局工作总结
2015/05/22 职场文书
遗愿清单观后感
2015/06/09 职场文书
你会写请假条吗?
2019/06/26 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
python随机打印成绩排名表
2021/06/23 Python
拙作再改《我的收音机情缘》
2022/04/05 无线电