【JS】记录一下今天遇到的问题和解决方法

需求:所有的已发布的工单和标准要能打印,打印时隐藏页面所有按钮,效果如下。

问题一:隐藏按钮。
解决办法
获取按钮,设置样式display=none;

    function onPrint() {cui("#grid").setWidth(696);var toHide = document.getElementsByClassName("printHidden");for (var i = 0; i < toHide.length; i++) {toHide[i].style.display = "none";}window.document.body.innerHTML = document.documentElement.innerHTML;window.print();};

问题二:打印完成后页面的按钮消失。
解决办法
打印完成或者关闭打印预览页后刷新页面。

window.onafterprint = function () {window.location.reload();
}

问题三:打印预览的表格显示不全。
解决办法
表格每列设置宽度百分比,不用固定列宽,打印时设置表格整体宽度。

cui("#grid").setWidth(696); //这里用的康拓普前端框架CUI

问题三:太宽的表格默认设置横向打印。
解决办法
加一个style。

<style type="text/css" media="print">@page { size: landscape; }
</style>

【补充】2019年11月25日19:36:23
问题三:IE浏览器宽度需要重新调整
解决办法:识别浏览器类型,window.onbeforeprint 打印之前设置表格宽度

    window.onafterprint = function () {window.location.reload();}window.onbeforeprint = function () {var flag = isIE();if (!flag) {flag = isIE11();}if (flag) {cui("#xxx_grid").setWidth(626);} else {cui("#xxx_grid").setWidth(696);}}function isIE() {if (window.navigator.userAgent.indexOf("MSIE") >= 1) {return true;} else {return false;}}// ie11function isIE11() {if (!!window.ActiveXObject || "ActiveXObject" in window) {return true;} else {return false;}}

【JS】学习记录【页面打印】相关推荐

  1. php 跳转历史页面,js不记录页面跳转历史的解决方法

    js不记录页面跳转历史的解决方法 在实际工作中,我们会遇到一个页面中有几个tab切换标签,tab切换是修改了浏览器地址",tab切换是默认记录到历史的.因此我们点击返回按钮的时候,不停的在几 ...

  2. JS怎么实现页面打印 JS实现页面打印的方法

    JS实现页面打印 1.js实现(可实现局部打印) [html] <input id="btnPrint" type="button" value=&quo ...

  3. require.js学习记录

    1.简介 官方对requirejs的描述: RequireJS is a JavaScript file and module loader. It is optimized for in-brows ...

  4. Cytoscape.js学习记录

    记录学习Cytoscape.js的过程 官方教程 https://js.cytoscape.org/ 另有一篇别人的博文分享:cytoscape.js基础篇https://blog.csdn.net/ ...

  5. 我的three.js学习记录(一)

    在之前因为项目需要使用WebGL技术做网页应用,但是苦于自己没有接触,只是使用过OpenGL.然后接触到了thre.js这个第三方库之后我突然心情很愉快,这将节省我很多时间. 过了这个项目之后,就再也 ...

  6. mock.js学习记录

    mock介绍 为什么要使用mock.js呢?在系统的开发中,做前端的同学经在工作中常常面临一个问题:因为后端的接口迟迟不能做好而无法进行页面的调试,尤其在根据后端的数据做数据的动态展示的时候,这种情况 ...

  7. JS学习记录(BOM部分)

    BOOM部分 Screen <html lang="en"> <head><meta charset="UTF-8">< ...

  8. C#学习记录——Windows打印控件

    『多少事,从来急,天地转,光阴迫,一万年太久,只争朝夕.』-- 毛泽东语录 Windows打印控件 PageSetupDialog控件 PageSetupDialog控件用于设置页面详细信息以便打印. ...

  9. Auto.js学习记录

    软件选择:通过在CSDN的查找发现了几款手机自动化脚本软件,例如:按键精灵.Auto.js等等.最后我选择了Auto.js .Auto.js共有三个版本:4.1.1版本.7.0.0版本和8.0.0版本 ...

  10. Node.JS 学习记录(02)

    Node.js EventEmitter Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在 ...

最新文章

  1. VVeboTableView 源码解析
  2. 算法基础知识科普:8大搜索算法之二叉搜索树(下)
  3. C# 将DataTable数据源转换成实体类
  4. 一步步解析Attention is All You Need
  5. linux名词解释目录文件,linux的常识及术语解释
  6. 01_什么是one-hot编码、one-hot编码过程详解、为什么需要one-hot编码?one-hot编码的优缺点、使用sklearn中的API举例
  7. PyTorch GPU安装指南 (Ubuntu 16.04 anaconda cuda8.0 cuDNN6.0)
  8. jQuery.ready() 函数详解
  9. json-C使用小结
  10. 学习强化学习无法避开的两个词:Model-Based与Model-Free
  11. NOIP2017普及组复赛 解题分析
  12. cad中直径符号不显示_CAD上明明有图,但是打印的时候不显示怎么办?原来要这样设置...
  13. Oracle9i学习之boobooke小布版001
  14. 谷歌浏览器打开普通用户_谷歌浏览器为啥打开之后会是其他的浏览器的解决步骤...
  15. 增大或者减小图片大小的方法
  16. go-cqhttp系列教程-三种消息类型的复述(私聊,群聊,频道)-3
  17. 设置Google连接burpsuite
  18. 5WHY分析法 学习笔记
  19. antdesign 柱状图_你绝对想不到柱形图背后有这么多故事
  20. 小程序微信商家API V3对接转账到零钱(JAVA)

热门文章

  1. 水星mac1300r虚拟服务器,水星(MERCURY)MAC1300R路由器用手机怎么设置?
  2. 大早起的起来就上网瞎逛,发现了就记录下来,也算心理安慰
  3. SAP-FI 科目的统驭科目类型设置错了如何更改
  4. gulp入门详解之基本操作
  5. J-link OB 读取不了的问题
  6. 交叉编译ffmpeg:aac x264 x265
  7. ssh连接工具----xmanager5
  8. 推荐几款实用的思维导图工具
  9. solidity部署和验证代理合约
  10. Python基本图形绘制