点击打印按钮,开始渲染iframe然后执行打印事件
来源:互联网 发布:vod网络媒体播放器 编辑:程序博客网 时间:2024/06/18 09:10
项目中用的是pdf.js插件实现在线预览和打印PDF功能的。但是对于特别大的文件用PDF.js打印就会出现问题,渲染及其慢,影响用户体验,因为pdf.js是将pdf文件用canvas渲染出来的,如果是100张以上的PDF文件打印就会慢好多,更别说项目中普遍是1000多页的文件。解决方法就是禁止掉pdf.js插件的打印功能,利用浏览器直接打印。代码如下:
<iframe style="display: none;" id="printIframe" src="1.pdf"></iframe>
$("#printIframe")[0].contentWindow.print();
项目中需要点击打印后才开始渲染iframe然后执行打印事件。开始想法:
$('#print').click(function(){ $("#printIframe").attr('src','/records $("#printIframe").load(function(){ $("#printIframe")[0].contentWindow.print(); }); });
这样逻辑上完全没有毛病。但是当第一次点击后出现打印,以后就会出现bug,会有不出现打印的情况,发现是因为每次点击都执行$(“#printIframe”).load()事件,都要重新渲染iframe,至于这样为什么会影响打印俺也不知道,呜呜~~~但是找到问题了。。。修改代码如下:
$('#print').click(function(){ if($("#printIframe").attr('src')==''){ $("#printIframe").attr('src','/records/watermark?src='+src); $("#printIframe").load(function(){ $("#printIframe")[0].contentWindow.print(); }); }else{ $("#printIframe")[0].contentWindow.print(); } });
阅读全文
0 0
- 点击打印按钮,开始渲染iframe然后执行打印事件
- Android 点击单个按钮或者其他的View,在view上出现水波纹效果,然后执行点击事件。
- 页面点击打印按钮打印相关内容的小功能
- 点击打印按钮时发生了什么?
- 创建一个按钮,点击打印当前页面
- JavaScript实现点击按钮直接打印
- 打印按钮
- Unity不点击按钮执行按钮点击事件
- 执行DOS程序,然后从取出打印内容
- 窗体继承,然后实现按钮点击事件的重写
- delphi 网页提交按钮执行点击事件
- web 页面打印在A页面点击打印按钮 打印出B页面(调用window内置的打印)
- 各种点击方法(包括按钮的点击事件,手势点击)能打印NSLog里面的东西但是不能push到新界面
- JS打印页面绑定事件和点击事件
- JavaScript打印iframe内容
- iframe JavaScript打印
- DuiLib : 执行按钮事件, 模拟按钮的点击
- js调用打印机打印多联单,部分打印,执行打印事件后调用程序
- 使用Android Studio进行UI测试与Record Espresso Test自动生成测试代码
- 如何让Asp.net TextBox控件只允许输入数字
- 【OpenGL】绘制一个点
- Simulink数据保存提取和示波器显示
- Function Run Fun POJ
- 点击打印按钮,开始渲染iframe然后执行打印事件
- 使用eclipse建立webservice服务和客户端
- 绝对强大的三个linux指令: ar, nm, objdump
- docker详解
- 读入优化
- JavaWeb(2)_myEclipse_端口被占用
- C Primer Plus 第五章
- hdu 6129-推理
- 浅谈boostrap轮播插件原理