jqprint的网页打印,部分图片无法加载处理

本文转自:http://www.cnblogs.com/sanqianjin/archive/2015/09/24/4836643.html

自己负责的模块需要有个试卷打印的功能,需要将网页特定范围内的内容打印出来,所以选择了jquery.jqprint脚本

用起来也非常简单。

    //打印
    $("#printPage").jqprint({
        debug: false,//如果是true则可以显示iframe查看效果,默认是false 
        importCSS: true,//true表示引进原来的页面的css,默认是true。
        printContainer: true,//表示如果原来选择的对象必须被纳入打印,默认是true。
        operaSupport: true///表示如果插件也必须支持歌opera浏览器,默认是true。
    });

 

但是遇到一个问题,就是在页面有很多图片的时候,用谷歌浏览器打印预览的时候,预览的页面不会显示所有的图片,这样打印出来也没有显示图片。

查来查去,只能是jqprint脚本的问题,最后多次测试,发现将脚本里面

setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);

的时间从1000调至3000就会显示所有图片。

虽说找到了原因,程序跑通了,但是原理还是不知道,希望有人能看到这篇随笔来指点一下。

我猜应该是打印预览也是慢慢加载的,如果给的时间多的话,图片在这个时间能加载出来,就会在打印预览时出现。

 

这个问题还是没有警醒的看,其实设置成3000还是不能应对所有情况。应该按照打印试卷的页数来算,这个计时的时间就是页数×200。这样就足够了

setTimeout(function () { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } LoadingEnd(); }, pagenumber * 100 > 2000 ? pagenumber * 100 : 2000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值