最近测试老是提bug说是有50%的概率打印出空白页,之前我也一直发现偶尔会出现这个问题,只是一直没有发现原因。

今天终于下定决心找到问题所在。开始吧!

  查看源码一行行debug,发现问题只可能出现在这一段。

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

  这里应该是等待为了等待渲染完成,所以延迟了1秒加载打印。但是很多情况下会发现渲染时间超过1秒的情况,这种时候就会打印出空白页面。

  查询网上的资料之后,想了个办法解决 了这个问题。

var printObj=opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow;
        printObj.addEventListener('load', function() {
            printObj.print();
            if (tab) { tab.close(); }
        });

  我是js小白,如果有问题,欢迎指正。

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程