打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JS打印指定页面且去样式后的内容,window.print

如图,我们要打印主页面中 工单详情部分。
但是由于要打印的部分有样式,并且表格太宽,如果 要直接打印的话,打出来的纸张上字太小且颜色模糊,不易查看。

只要去掉样式,字体会变大,打印出来的效果要好的多。
方案一:我们可以取出要打印的部分,将打印部分填充到弹出的新页面中,然后我就再打印弹出页面即可。

这样做的话,有个缺陷,就是会先把要打印的页面显示出来,然后要用户再次点击打印按键,显示比较啰嗦蛮烦。

方案二:可以在要打印的页面中,嵌入一隐藏的iframe,用于存放要打印的部分代码。
我们点击打印按钮时,实际上是打印这个隐藏iframe的内容。

打印页面代码
Java代码  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
  2.         "http://www.w3.org/TR/html4/loose.dtd">  
  3. <html>  
  4. <head>  
  5.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  6.     <title>工单详细信息</title>  
  7.     <script type="text/javascript">  
  8.         function printPage() {  
  9.             //获取当前页的html代码  
  10.             var bodyhtml = window.document.body.innerHTML;  
  11.             //设置打印开始区域、结束区域  
  12.             var startFlag = "<!--startprint-->";  
  13.             var endFlag = "<!--endprint-->";  
  14.             // 要打印的部分  
  15.             var printhtml = bodyhtml.substring(bodyhtml.indexOf(startFlag),   
  16.                     bodyhtml.indexOf(endFlag));  
  17.             // 生成并打印ifrme  
  18.             var syfPrint = document.frames[0];  
  19.             syfPrint.document.body.innerHTML = printhtml;  
  20.             syfPrint.document.execCommand("Print");  
  21.         }  
  22.     </script>  
  23. </head>  
  24. <body>  
  25.     <div id="bd">  
  26.         <div id="right_box">  
  27.             <a href="#" onclick="javascript:history.back(1); event.returnValue=false">  
  28.                     << 返回</a><br />  
  29.             <!--startprint-->  
  30.                 //////////////////////要打印的内容部分//////////////////////<br />  
  31.             <!--endprint-->  
  32.             <input type="button" value="打印" onClick="printPage()" />  
  33.   
  34.     </div>  
  35.     <iframe src="" width="0" height="0" frameborder="0"></iframe>  
  36. </body>  
  37. </html>  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于iframe实现打印
2014年最新前端开发面试题(面霸题库)
AngularJs v1.6.6,使用window.print()打印报表实现
extjs 组件打印 问题
在线编辑器原理
JS跨域获取设置iframe高度(前提-跨域的页面可操作)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服