欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

chrome浏览器使用jqprint插件打印时偶尔空白页问题

程序员文章站 2022-03-08 14:46:15
最近测试老是提bug说是有50%的概率打印出空白页,之前我也一直发现偶尔会出现这个问题,只是一直没有发现原因。 今天终于下定决心找到问题所在。开始吧! 查看源码一行行debug,发现问题只可能出现在这一段。 这里应该是等待为了等待渲染完成,所以延迟了1秒加载打印。但是很多情况下会发现渲染时间超过1秒 ......

  最近测试老是提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小白,如果有问题,欢迎指正。