IE浏览器打印预览只打印第一页
react项目内,要兼容不同的浏览器实现打印、打印预览功能,非IE浏览器统一采用了window.print()方法,IE浏览器采用它自带的ActiveX。代码如下:
const Wtest = (props) =>{const printOpeation = (val) => {switch (val) {case 1://点击打印if (!!window.ActiveXObject || "ActiveXObject" in window) {document.getElementById("factory").printing.portrait = true;//设置打印方向document.all.WebBrowser.ExecWB(6, 1)} else {print('printDiv')}break;case 2: //打印预览if (!!window.ActiveXObject || "ActiveXObject" in window) {document.getElementById("factory").printing.portrait = true;//设置打印方向document.all.WebBrowser.ExecWB(7, 1)} else {print('printDiv')}break;default:break;}}//打印const print = (id) => {var newstr = document.getElementById(id).innerHTML;var oldstr = document.body.innerHTML;document.body.innerHTML = newstr;window.print();document.body.innerHTML = oldstr;//此处针对需求写的,可不写if (myBrowser() !== 'Chrome') {window.location.reload();}}return(<div style={{ width: '600px', margin: 'auto', padding: '20px 0', display: propsData.type ? 'inline-block' : 'block' }}>{/* 将不打印的内容设置noprint样式 */}<div style={{ textAlign: 'center' }} className="Noprint"><object id="WebBrowser" classID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" style={{ height: 0, width: 0 }}></object><input type="button" style={{ marginRight: 8 }} value="打印" onClick={() => printOpeation(1)} /><input type="button" style={{ marginRight: 8 }} value="打印预览" onClick={() => printOpeation(2)} /></div><div id='printDiv'>打印的内容</div>)
}
主要代码如上所示,在非IE浏览器内都没有什么问题,window.print()自带预览,也可正常打印,但在IE浏览器内打印预览时只显示第一页的内容,打印也只有一页,研究很久发现是react的问题。
react组件内使用IE的ActiveX会导致多页打印时只显示一页!!!
目前采用的解决办法是针对IE浏览器单独写了一份要打印的页面的html文件,文件内全部采用原生的方法,将文件放入public文件夹内,打包后文件也会存在。
我的项目内在进入打印页面前有一个点击操作,在这里判断浏览器类型,然后直接进入不同的页面。
if (!!window.ActiveXObject || "ActiveXObject" in window) { //判断是否为IE浏览器sessionStorage.setItem('IEDatasource', xxx);//可以将需要的数据存进sessionStoragewindow.open('about:blank').location.href = `http://${window.location.host}/IEPage.html`;return;
}
IE浏览器打印预览只打印第一页相关推荐
- html 打印预览跟实际不一样,打印预览和打印出来的不一样(总结自己遇到的问题和解决方法)...
1.打印预览和打印出来的不一样(表格里面的字出了表格)? 答:我在打监理月报时,经历的一个案例,其实这是因为你设置了居中,结果呢,表格进了下一页,所以这时有可能字就出了表格,只要将此单元格选定,然后选 ...
- 在C#里实现DATAGRID的打印预览和打印
作者Blog:http://blog.csdn.net/qieyj/ 很多人都在论坛里问,如何实现DATAGRID的打印预览和打印,现在我就把这方面的源代码告诉大家.这段代码也花费了我1个晚上的时间, ...
- excel 打印预览只能显示一页 打印的字特别小
excel 打印预览只能显示一页,而且 还 打印的字特别小. 常见小问题,解决. ①问题如图所示 ②解决方法.页面布局 -> 缩放比例 改大.
- pdfjs打印预览多出一页空白页
问题描述: 测试发现,当pdf恰好是一页时,会出现打印预览多出一页空白页的问题,而当页面多时是正常的. 解决方案 修改pdfjs源码/static/pdf/web/viewer.css 原样式: /* ...
- 在网页中调用打印预览及打印设置
在网页中调用打印预览及打印设置 以下内容为程序代码: <OBJECT id=WB classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 heig ...
- java使用Bartender模板btw格式打印预览和打印SDK
java使用Bartender模板btw格式打印预览和打印SDK 下载 bartender-printer-sdk.jar 支持模板转图像 支持自定义纸张大小 支持局域网打印机打印 支持模板数据源模式 ...
- 网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距
1.控制"纵打". 横打"和"页面的边距 (1) <object id="factory" style="display ...
- chrome html 打印预览,Chrome打印预览错误
我想打印一个html页面.html页面是由我开发的,这个页面可以用mozilla打印,即. 在Chrome中:当按下CTRL + P时会弹出预览窗口,但它会显示:"打印预览失败", ...
- C# 打印预览 PrintDocument打印、打印预览
#region 打印预览#region 变量 常量//以下用户可自定义 //当前要打印文本的字体及字号 private const int HeadHeight = 40;private static ...
最新文章
- android中各属性布局,Android里面各布局的属性定义
- 继续说说美国互联网版权监管法案(SOPA)
- 我的世界一进去就java_我的世界国际java版1.12.2加了光影修复进游戏就直接崩溃...
- write up社工进阶
- Nginx为什么比Apache Httpd高效
- 如何在Eclipse自带的嵌入式Maven和外部安装的Maven之间切换
- 并发模式:生产者和消费者
- 重磅!这个生信神器助你文章秒出图——miRNA与基因互作数据库
- mysql利用binlog删除数据库_MySQL数据库之mysql手动删除BINLOG的方法
- 13. 查看网络端口、配置网络
- PowerShell在Exchange2010下快速开启邮箱[续]
- C语言指针详解(超级详细)
- 计量经济学(七)----自相关性Autocorrelation.
- CodeForces 645D Robot Rapping Results Report
- 考研英语 - word-list-25
- 谷歌搜索网站流量_Google搜索升级使网站更难赢得流量
- node.js学习笔记3 express基本使用、托管静态资源、express中间件
- 更多单词/词组/短语补充和总结
- 云队友丨李善友:人生为一件大事而来!
- ADB 用法大全 【转】